#include<stdio.h>
int main(void) {
int i=(1,2,3,4);
printf("%d",i);
return 0;
}
当我接受在线技术模拟测试时,我就提出了这个问题。首先我认为行int i=(1,2,3,4);
中存在编译错误,但我错了。我不知道为什么这个问题的输出是4
。
答案 0 :(得分:2)
这里,(1,2,3,4);
是一系列表达式,由commas
分隔,计算结果为最后一个表达式。
C11§6.5.17逗号运算符:
逗号运算符的左操作数被评估为void 表达;它的评估与之间存在一个序列点 正确的操作数。然后评估右操作数;结果 有它的类型和价值。
答案 1 :(得分:1)
()的优先级高于=,而()的结果是示例中最后一个为4的元素。比=操作将完成