当前位置: 代码迷 >> C语言 >> 菜鸟问题......谢谢
  详细解决方案

菜鸟问题......谢谢

热度:21   发布时间:2006-06-11 00:10:59.0

k=(++i)+(++i)+(++i);

.....
唉 ..看的眼花.

[此贴子已经被作者于2006-6-11 0:18:09编辑过]


----------------解决方案--------------------------------------------------------
以下是引用486的魅力在2006-6-10 14:45:38的发言:

a=(b=5)*(c=8)

为什么会等于18?




i=3

K=(++i)+(++i)+(++i)

为什么值为40 10

不要再纠缠这些东西了,往后学。(尽信书不如无书)


----------------解决方案--------------------------------------------------------
以下是引用feng1256在2006-6-11 0:20:03的发言:

不要再纠缠这些东西了,往后学。(尽信书不如无书)

说的有道理,这种东西实际用处不大,谁会写一个东西的时候,白痴一样加入诸如k=(++i)+(++i)+(++i)这样的表达式,不仅别人不好理解,有时候自己也会头晕的。


----------------解决方案--------------------------------------------------------
[QUOTE]k=(++i)+(++i)+(++i)[/QUOTE]
这种行为在C标准中未做定义,也就是说,这个K的值不管是什么编译器的行为都是对的.
从另一个意义讲,这是违背C标准的表达式.
----------------解决方案--------------------------------------------------------
第一题40
第二题这个就不一定了
要根据你的编译器来定
因为每个编译器进出内存的顺序可以有所不同;
一般出这种题的目的不是得到答案
而只是让你明白一个道理
那就是程序他运行的过程可能很诡异
千万不要去为了耍点小聪明
而编出弄巧成拙的语句
有时候宁愿多写几行
也要让你和编译器都看懂
----------------解决方案--------------------------------------------------------

谢谢各位...努力学习..书上答案确实有问题


----------------解决方案--------------------------------------------------------
[分享]
第一的答案为40;
第二的答案为16.
有任何不理解的地方可以加QQ331826630.
----------------解决方案--------------------------------------------------------
  相关解决方案