c语言自增和自减的问题

发布时间:2024-05-17 15:19 发布:上海旅游网

问题描述:

#include<stdio.h>
void main()
{
int a1,a2,a3,a4,b1,b2,b3,b4;
a1=a2=a3=a4=10;
b1=(a1++)+(a1++)+(a1++);
b2=(++a2)+(++a2)+(++a2);
b3=(a3--)+(a3--)+(a3--);
b4=(--a4)+(--a4)+(--a4);
printf("a1=%d,a2=%d,b1=%d,b2=%d\n",a1,a2,b1,b2);
printf("a3=%d,a4=%d,b3=%d,b4=%d\n",a3,a4,b3,b4);
}
用的是vc 6来编译。
结果怎么是这样的呀。
a1=13,a2=13,b1=30,b2=37
a3=7,a4=7,b3=30,b4=23
正确的结果应当是39,21.

问题解答:

不理解
反正是从右向左计算
++x 就是先+1在算表达式
x++就是先算表达式值x再+1

但是这样
b2应该是36啊,抑郁
b4也应该是24.。无语啊

VS2008里面编译出来
b2 39
b4 21
这个还算可以理解,他先做完自增/自减运算之后才求的和
但是 37,23就很无奈了

同意2楼的,等你实际应用c的时候,就会发现自增自减不会这么用的

楼主,我有一篇关于自增量的文章
讲的很比较明白
想要的话,可以给我发百度信息

热点新闻