阅读有关未定义行为和序列点的答案后,我编写了一个小程序:
#include <stdio.h>
int main(void) {
int i = 5;
i = (i, ++i, 1) + 1;
printf("%d\n", i);
return 0;
}
输出为2。哦,天哪,我没有看到减价的到来!这是怎么回事
另外,在编译上面的代码时,我得到警告说:
px.c:5:8:警告:逗号表达式的左操作数无效
[-Wunused-value] i = (i, ++i, 1) + 1;
^
为什么?但是可能我的第一个问题的答案会自动回答。
隔江千里
MM们
慕桂英3389331