C语言逗号运算符和自增自减运算符
#include <stdio.h>#include <math.h>
int main()
{
int a = 8;
int b = 9;
printf("%d,%d",(a++,++b),b--);
return 0;
}
上面这段代码我的思路是:
先计算括号内的逗号表达式从左向右执行,a++之后还是8,++b之后b为10,所以第一个输出为10,之后执行b--,执行之后也是10;
所以最后结果是10,10;
哪里出错了,最后是如何输出9,9的? 这种问题没什么意义。
C 语言参数从右往左入栈,也就是先算 b--,再算 ++b。 从右往左算。先b--。再算括号里的。 这个问题在论坛里出现过很多次了,这是以前回答过的答案,供你参考
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=155919&pid=4343099
页:
[1]