自增自减运算符

发布时间:2024-05-16 03:42 发布:上海旅游网

问题描述:

我打出了如下代码(不全)
int a=5,b=0;

b=(++a)+(++a)+(++a);
最后得到22 在vc6.0上运行,可是看教程说b=24;还有的说是21,为什么啊 到底哪个对,求解 谢谢
我想知道 vc运行后 22 是怎么来的

问题解答:

22是这样算出来的

首先一个运算要有2个操作数
它先算两个操作数

(++a) + (++a)
这里计算了两次++a后,a = 7,注意,是两边算好后再一起加,这个就涉及到编译器及和压栈顺序了,总之,是这么做了
加了结果为14

然后运算
14 +(++a)
a++后是8
14 + 8 = 22

编译器不同
所以有一点不同
vc6.0 是22
win tc 是 24
估计书上是基于tc平台吧

每个软件不一样 不必深究 没用

编译器不同,我在turbo c 2.0下运行得24.

热点新闻