答案是 90。但这样做的逻辑是什么?如果我写这个 j=(4,5); 那么答案是 5。
#include<stdio.h>
void main()
{
int j;
j=(4,5,90);
printf("%d\n",j);
}
答案是 90。但这样做的逻辑是什么?如果我写这个 j=(4,5); 那么答案是 5。
#include<stdio.h>
void main()
{
int j;
j=(4,5,90);
printf("%d\n",j);
}
您正在使用逗号运算符:
在 C 和 C++ 编程语言中,逗号运算符(由记号 , 表示)是一个二元运算符,它计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回此值(和类型)。
请注意,这与分隔函数参数的逗号不同。
a = 1, 2, 3;
^ ^
| |
comma operators
a = foo(1, 2, 3);
^ ^
| |
separators
对于您的代码,这意味着所发生的只是表达式4
,5
和90
被逐一评估,其结果是最后一个表达式的结果,即90
.
括号只是括号,它们不会以任何方式影响结果。
const int j = (4, 5, 90);
是相同的:
const int j = 4, 5, 90;
或者,就此而言:
const int j = (4), (5), (90);
正如我链接到的维基百科页面上所指出的,并且从上面应该很明显,逗号运算符很少有用。它可以被欺骗以用于各种不为人知的目的(请参阅此页面以获取示例),但做不知名的事情很少是胜利。