i =(i,++ i,1)+1; 做?
阅读有关未定义行为和序列点的答案后,我编写了一个小程序: #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; ^ 为什么?但是可能我的第一个问题的答案会自动回答。