关于VC++6.0中的自增运算符!

发布时间:2024-05-18 07:48 发布:上海旅游网

问题描述:

请看,这是在VC++6.0中的一段程序:
#include <stdio.h>
void main()
{
int k=5,Q;
Q=(++k)+(++k)+(++k);
printf("%d,%d\n",Q,k);
}
运行结果:22,8
改为C的编译器,结果为24,8。
我知道在TC中是先执行三遍++k,所以是3个8相加,等于24。
可是,为什么在VC++6.0中运行,结果不是21,而是22啊?很费解。

当然自增运算符不应在程序中这样使用,只是看了一本书上有这个例子。
还请大家帮我解释一下,谢谢!

问题解答:

没必要深追,非要知道的话你可以去把程序反编译成汇编然后看。

vc6记得是这样,以前有人问过,
++k 算了2次,k=7,然后再将2个数进行加运算,7+7+8,汇编代码的话应该很清楚

热点新闻