读书人

C++关于自增运算符的有关问题

发布时间: 2012-03-01 10:25:47 作者: rapoo

C++关于自增运算符的问题
大家对这个自增运算符应该都很熟悉吧!
有前缀很后缀两种
前缀先自增在运算
后缀先运算后自增

今天在和C#作比较时遇到一个问题。

C#写法:
i = 2;
j = i + ++i;
输出j的值为5

C/C++写法:
i = 2;
j = i + ++i;
输出j的值为6

难道他们的运行机制不一样
为什么会这个
请高手帮忙作答
迫切想知道为什么C++中会得到6的结果

顺祝各位中秋快乐!


[解决办法]

压栈顺序不一样结果就不一样, 看编译器定了, 你自己写编译器的话,你可以随便挑哪个结果
[解决办法]
这都是没有定式的,因为不同的产商做的编译器不一样,所以不用太深入的去研究.


[解决办法]
视编译器而定
[解决办法]
C++标准明确标明为“未定义”行为的东西,就不要研究了,不要写这样的代码

读书人网 >C++

热点推荐