VS2005中C++计算结果与VC不一样?
答案:3 悬赏:20 手机版
解决时间 2021-04-13 22:20
- 提问者网友:眉目添风霜
- 2021-04-12 23:45
VS2005中C++计算结果与VC不一样?
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-04-13 00:20
不同的编译器的结果会不同的,而不同的结果也不能说是谁对谁错,它们都有自己的解释,就是说这个加号减号的运算顺序是不确定的,注意是运算顺序,不是结合顺序,比如(++i)+(++i)+(++i),这个式子,你只能根据优先级的表确定括号里面的先执行,但是谁都不能确定的告诉你三个式子是哪个先执行,所以有了不同的结果,在c的标准里面,这个是没有规定运算顺序的,在c的标准里面,有且仅有四个运算符是规定了运算顺序的,注意是运算顺序,那就是与&&,或||,逗号运算符,,唯一的三目运算符?:,除了这四个运算符规定是从左到右执行的,剩下的都没有规定运算顺序。
所以不要再追究这个一堆这样的式子最后得多少了,因为这个根本没有谁对谁错,上面是我的理解,希望对你有帮助
这个不能设置的吧,避免这样的移植性失误只能在表达式里面不要用这些表达式了,养成一个好的编程习惯
所以不要再追究这个一堆这样的式子最后得多少了,因为这个根本没有谁对谁错,上面是我的理解,希望对你有帮助
这个不能设置的吧,避免这样的移植性失误只能在表达式里面不要用这些表达式了,养成一个好的编程习惯
全部回答
- 1楼网友:胯下狙击手
- 2021-04-13 01:50
入栈顺序的问题 这玩艺有不定的答案 不同的编译器 不同的平台能产生五花八门的结果
- 2楼网友:等灯
- 2021-04-13 00:45
编译器不同结果也不同? 那要标准干吗?
VS2005里的是错的。知道它的这个Bug后以后尽量避免使用类似代码。
VS2005里的是错的。知道它的这个Bug后以后尽量避免使用类似代码。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯