C语言中的算术运算符问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 23:54:02

int a=10
printf("%d,",a);
printf("%d,",++a);
printf("%d,",a++);
printf("%d\n",a);
运行结果为
10,11,11,12
前面三个看的懂,但printf("%d\n",a);运行结果为什么是12呢?能说明下过程吗?谢谢.

int a=10
printf("%d,",a); /*a=10*/
printf("%d,",++a); /*a先加一再调用printf,a=11*/
printf("%d,",a++); /*调用printf在使a+1,a=12*/
printf("%d\n",a); /*a=12*/

++a 跟a++都会使 a增加1

不同的是++a是先自己增加1,再输出。。。

a++是先输a,a再自己增加1

printf("%d,",a); 输出为10,a=10;
printf("%d,",++a); a先自加.a=11,输出a即为11
printf("%d,",a++); 先输出a即11,然后a自加,所以a=12
printf("%d\n",a); 输出a,因为a=12 所以为12

printf("%d,",a);输出10 a=10
printf("%d,",++a); 输出11 a=11
printf("%d,",a++); 输出11 a=12
printf("%d\n",a); 输出12 a=12
好好看看书吧 这个是基础问题

前面三个懂了,第四个怎么不懂?
第四个不懂,就是因为前面三个没懂。

学习要认真,不能不求甚解,写程序,需要钻研精神。

第一次是a,10没问题

第二次是++a,也就是先a+1之后显示所以是11

第三次是先显示11,然后再a+1=12

所以最后一次a是12了