C中自增自减的使用

发布时间:2024-05-28 12:49 发布:上海旅游网

问题描述:

#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("a1=%d,a2=%d,a3=%d\n",a,a,a);
a+=1;
a+=1;
a+=1;
}

热点新闻