C中自增自减的使用

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:44:36
#include<stdio.h>
main()
{ int a; float x;
a=16; x=12.6;
printf("a1=%d,a2=%d,a3=%d\n",a++,a++,a++);
printf("a=%d\n",a);
printf("x1=%f,x2=%f,x3=%f\n",--x,--x,--x);
}
为什么结果是16,16,16
19
9.6,10.6,11.6
那如果是printf("%d",(++a)+(++a)+(++a));呢这个是从左向右算 还是从右向左算

如果--号在左,就先运算。12.6减一为11.6,在减一为10.6,依此类推。之所以输出顺序是9.6,0.6,11.6是因为自加自减的运算顺序是自右向左。
#include<stdio.h>
main()
{ int a; float x;
a=16; x=12.6;
printf("a1=%d,a2=%d,a3=%d\n",++a,++a,++a);
printf("a1=%d,a2=%d,a3=%d\n",a++,a++,a++);
printf("a=%d\n",a);
printf("x1=%f,x2=%f,x3=%f\n",--x,--x,--x);
}
运行后结果为19,18,17
19,19,19
22
9.6,10.6,11.6

#include<stdio.h>
main()
{ int a; float x;
a=16; x=12.6;
printf("a1=%d,a2=%d,a3=%d\n",a++,a++,a++);
printf("a=%d\n",a);
printf("a1=%d,a2=%d,a3=%d\n",++a,++a,++a);
printf("x1=%f,x2=%f,x3=%f\n",--x,--x,--x);
}
结果是16,16,16
19
22,21,20
9.6,10.6,11.6

+-在前时,先把这个算出来再进行输出
+-在后面,先把这句话运行到“;”处,也就是先把这句话运行完再进行自加自减。
printf("a1=%d,a2=%d,a3=%d\n",a++,a++,a++);
也就相当于
{
printf(