首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么程序计算出来的结果 是16而不是15呢?该如何处理

2012-02-28 
为什么程序计算出来的结果 是16而不是15呢?1. i3c(++i)+(++i)+(++i)16[解决办法]和编译器有关[解决办

为什么程序计算出来的结果 是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 怎么回事呢?

热点排行