为什么程序计算出来的结果 是16而不是15呢?
1.
i = 3;
c = (++i)+(++i) + (++i) = 16
[解决办法]
和编译器有关
[解决办法]
这样的程序结果是 编译器相关的,
换一个编译器,得到的可能就是 15 。
这样的语句是未定义明确行为的,
请不要这么写代码 ~
[解决办法]
与编译器有关
[解决办法]
说得很明白了 顶一下
[解决办法]
这样的代码有多少意义呢?
[解决办法]
呵呵,意义在于老师要考学生.....
[解决办法]
i=3;c = (++i)+(++i) + (++i) = 16
第一个括号结果是4,此时i=4;
第二个括号是在4的基础上再加1 ,结果为5,此时i=5;
第三个括号是在i=5的基础上再加1,结果为6,此时i=6;
所以,结果应该是15,
但是我运行了一下,结果也是16,不知道为什么了
[解决办法]
这种代码只能看编译器来取结果
理论上的结果也只是理论 15
所以尽量写规范代码
[解决办法]
意义在于老师要考学生,呵呵
计算机二级考试也有不少这样的东西,呵呵
[解决办法]
运行了一下竟然是18 怎么回事呢?