dan蛋 发表于 2020-3-23 13:15:16

一个简单的问题


#include <stdio.h>
void main()
{
        int i = 8;
        printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);//注意这几个式子自右向左运算

}

请问这个该怎么运算?????

zltzlt 发表于 2020-3-23 13:16:58

又是 ++ -- 类问题……

这类问题得看编译器,不同的编译器得出的结果不同

一只程序猫 发表于 2020-3-23 13:25:55

我的在Dev-C++中
编译结果:
8
8
7
8
-7
-8

4goodworld 发表于 2020-3-23 13:34:04

不同版本的编译器的结果是不一样的,
你想了解结果,你可以断点然后查看汇编代码,看看底层编译器的处理方法
你一定想要知道原理,你可以翻看以前的帖子,很多类似这样子的提问。
我个人的建议,“钻研”++和--没有意思,无非是一种炫技而已
从代码编写角度来看,这种连续 自增或自减 明显有风险的书写方式,你自己理解不透彻,很容易栽跟头,所以还是不要采用为好,

__墨鱼卷__ 发表于 2020-3-23 16:14:40

visual studio2013:
8
8
7
8
-7
-8

召唤师 发表于 2020-4-2 15:44:18

教训就是,不要用一大堆,++或--的运算,很乱。

杜若左 发表于 2020-4-2 16:06:32

4goodworld 发表于 2020-3-23 13:34
不同版本的编译器的结果是不一样的,
你想了解结果,你可以断点然后查看汇编代码,看看底层编译器的处理方 ...

我非常同意你的看法,一个优秀的程序员。不应该写出这种含有二义性的代码。这样的问题真的没哟多大的意义。{:10_256:}
页: [1]
查看完整版本: 一个简单的问题