#include <stdio.h> void main() { int a=1; a++; printf("%d,%d,%d",a,a++,--a); }

输出是:1,1,1
但是我觉得应该是2,2,2
为什么

printf("%d,%d,%d",a,a++,--a);
计算机扫描的时候,从左向右扫描。先执行a++,这时a=2(你应该懂的),再执行--a,因为这是并列的,这时值不变,a=1;所以输出应该是1,1,1
温馨提示:内容为网友见解,仅供参考
无其他回答

#include <stdio.h> void main() { int a=1; a++; printf("%d,%d,%d...
printf("%d,%d,%d",a,a++,--a);计算机扫描的时候,从左向右扫描。先执行a++,这时a=2(你应该懂的),再执行--a,因为这是并列的,这时值不变,a=1;所以输出应该是1,1,1

...左输出的?(比如printf("%d",a ,a++)就是先输出a++的值,再输出a的...
比如使用下列测试代码:include<stdio.h> void main(){ int a=1;printf("%d,%d\\n",a,a++);printf("%d\\n",a);}

#include<stdio.h> void main() { int a =1; printf("%d,%d\\n",a,+...
printf是标准的__cdecl,参数自右向左入栈 但是求值顺序是语言标准中没有规定的,所以这个实际上的未定义行为

#include<stdio.h> main() { int a=1,b=1,c=1; a++||
a++ 为非 0 值,则为真;后面的 b++&&c++ 就不用执行了。所以输出结果是: 2 1 1

int a=1;printf("%d,%d,%d",a++,a++,a++);结果
a++表示在使用a的当前值调用a++所在行代码后再将a的值累加1。你这段代码运行的结果就是三个1。

#include <stdio.h> void main() { int a=1,b=0; if(--a) b++; pri...
--a的意思是,先自减再用a 所以if(--a)判断的时候 a是0,所以b不自加还是0 所以a是0 b也是0

c语言如何理解 printf('%d,%d,%d",a++,a++,a++)
main(){ int a=1;printf("%d,%d,%d\\n",a++,a++,a++);printf("%d\\n",a);} 运行后的结果如下,你能明白吗?3,2,1 4 这个语句是明白了会明白C语言里面两个难懂的东西:printf("%d,%d,%d\\n",a++,a++,a++);首先a++和++a是如何工作的:a++就是用a参与表达式的计算,然后把a+1...

...main() {int a=1,b=2; a++;b++; printf("%d%d\\n",a,b); } 运行结...
因为自增在后,先运算再自增即输出a=1,b=2 有图有真相,能采纳不?

#include<stdio.h> void main() { int a; for(a=1;a<5;a++) a=2*a...
从for循环开始说。a=1;然后a=2*a; (a=2)然后a++ (a=3)然后a<5成立,继续for循环 (a=3)然后a=2*a; (a=6)然后a++ (a=7)然后a<5不成立,退出for循环 (a=7)

C语言中a++和--a的区别
++a a先加1,所以此时的a=9,所以输出是9,a--是a先传参,再减1,.所以输出是9。要是你在后面输出一次a,那就是输出8了。这是一个是先自加减,还是后加减的问题

相似回答