Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用&&&引用;及;及;C中的运算符_C_Operators_Logical Operators - Fatal编程技术网

&引用&&&引用;及;及;C中的运算符

&引用&&&引用;及;及;C中的运算符,c,operators,logical-operators,C,Operators,Logical Operators,我试图计算两个整数的最大公分母 C代码: #include <stdio.h> int gcd(int x, int y); int main() { int m,n,temp; printf("Enter two integers: \n"); scanf("%d%d",&m,&n); printf("GCD of %d & %d is = %d",m,n,gcd(m,n)); return 0; } int

我试图计算两个整数的最大公分母

C代码:

#include <stdio.h>

int gcd(int x, int y);

int main()
{
    int m,n,temp;
    printf("Enter two integers: \n");
    scanf("%d%d",&m,&n);
    printf("GCD of %d & %d is = %d",m,n,gcd(m,n));
    return 0;  
}

int gcd(int x, int y)
{
    int i,j,temp1,temp2;

    for(i =1; i <= (x<y ? x:y); i++)
    {
        temp1 = x%i;
        temp2 = y%i;
        if(temp1 ==0 and temp2 == 0)
            j = i;
    } 
    return j;         
}
#包括
国际货币基金组织(国际货币基金组织x,国际货币基金组织y);
int main()
{
内部温度m,n,温度;
printf(“输入两个整数:\n”);
scanf(“%d%d”,&m,&n);
printf(“%d和%d的GCD为=%d”,m,n,GCD(m,n));
返回0;
}
整数gcd(整数x,整数y)
{
int i、j、temp1、temp2;

for(i=1;i基本上
只是中
&
的文本版本。 但是,您确实需要
#包含
。否则它将无法编译

您可以在此处阅读更多内容:
请查看此处的页面

此标题定义了11个宏,它们是一些常用运算符的文本等价物。
是定义之一

<>请注意,我只能对C++编译器进行测试,所以我不能确定是否可以用严格的C编译器使用。
编辑我刚刚用C编译器对它进行了测试,它确实有效。

它是为您编译的,因为我认为您包含了iso646.h(ciso646.h)头文件。
根据它,与&&。相同。如果不包括,它会导致编译器错误。

运算符是与&
Ref-

运算符是与
|
Ref.-


因此,
resA
resB
是相同的。

&
是备用代币,功能相同,第2.6节中的备用代币来自:

是表2-替代代币中的条目之一,在第2小节中说明:

在语言的各个方面,除了拼写之外,每个可选标记的行为都与主标记的行为相同。表2中定义了一组可选标记

正如Potatoswatter指出的那样,使用
很可能会让大多数人感到困惑,所以最好还是坚持使用
&&

重要的是要注意,在
Visual Studio中
,显然不打算这样做

编辑

< >我添加了一个C的具体答案,因为这本来是一个C++问题的答案,但是我正在添加一个相关的引文,从第7.9节中的替代拼写“代码> <代码> >第1段说:

标题定义了以下11个展开的宏(位于左侧) 到相应的令牌(右侧):

包括这一行以及其他几行:

and    &&
我们也可以找到一个很好的参考

更新


查看您的最新代码更新,我不确定您是否真的是在C模式下编译,for OrwellDev 5.4.2说它使用的是GCC 4.7.2。我无法在
GCC-4.7
GCC-4.8
中构建它,也无法使用
-xC
将其置于C语言模式,请参见。尽管您对
GCC
行和我们进行注释e
g++
它构建ok。如果您取消注释
\include
,它也在
gcc
下构建ok,
只是
&
的一个替代标记

我们可以在此处轻松引用标准:

2.6替代代币[lex.digraph]

在语言的各个方面,除了拼写之外,每个可选标记的行为都与主标记的行为相同。表2中定义了一组可选标记

表2:

   Alternative | Primary
        and    |    &&
但是我建议你使用
和&
。习惯C/C++的人可能会被
弄糊涂


由于它现在被合并了,我们也在讨论C,您可以查看定义替代标记的页面

此头定义了11个宏常数,这些常数可用于那些不被ISO64标准字符集支持的C++运算符。 根据C99标准草案:

7.9可选拼写

标题定义了以下11个展开的宏(左侧) 到相应的令牌(右侧):


<> >代码> &代码>和<代码>和<代码>是同义词和平均逻辑,C++中。对于更多信息检查和

如果你的问题中编译的代码没有错误,或者你不是真的编译在C99模式或(不太可能)你的编译器有缺陷。或者代码不完整,还有一个
#include
,你还没有向我们展示

<>最可能是在C++模式下调用编译器。要测试这个,尝试添加一个声明:
int class;
<> > C编译器将接受此;C++编译器会将其作为语法错误拒绝,因为类< /C>是关键字。(这可能比测试<代码>“yp+cPLUS PLUS
定义了11个宏,这些宏为某些运算符提供了可选的拼写

#define and &&
这样你就可以写作了

if(temp1 ==0 and temp2 == 0)
在C语言中,只有当你有一个
#include
,否则这是一个语法错误

是在1995年对1990年ISO C标准进行修订后添加到该语言中的,因此您甚至不需要C99兼容编译器来使用它

在C++中,头是不必要的;C的代码“< >代码”定义为宏的相同标记是内置的替代拼写。(它们在C++标准的相同部分中定义为2.6(LeX。有向图),作为有向图,但注脚说明“有向图”一词不适用于诸如“代码>和<代码>的词汇关键字。”正如C++标准所说:

在语言的各个方面,每个替代标记都表现为 除了拼写之外,与主要标记相同

在C++程序中,可以使用<代码>包含< /COD>,但是这样做没有意义(虽然它会影响<代码> > 实际上,我不建议使用替代令牌,无论是C还是C++,除非

#define and &&
if(temp1 ==0 and temp2 == 0)