自增自减运算符
发布时间:2024-11-06 07:50 发布:
上海旅游网
问题描述:
我打出了如下代码(不全)
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.