求助,自学c结果到这实在理解不了了。
c语言吧
全部回复
仅看楼主
level 4
ttk 楼主
这 p 为什么等于22? 运算前先加一,三个无非就,8+8+8,或者6+7+8,怎么都和22扯不上关系啊,而且软件上说的也不一样,跪求解答
2020年02月14日 06点02分 1
level 13
百度一下c语言的未定义行为
2020年02月14日 06点02分 2
吧务
level 14
你的软件太差了,换一个吧
2020年02月14日 06点02分 3
level 5
对于这种题,我们老师交给我们一个规律:q =(++j)+(++j)+(++j)
(++j)的值是:6+7+8,数其中"+"号的个数,有两个加号,再额外+1。
如果这种题的(++j)没有加括号。题似:q = ++j+++j+++j,就要这样理解:前两个加号加括号。即为:q =(++j)+(++j)+(++j),你得这样理解,不然实际你是搞不懂的。
2020年02月14日 07点02分 4
level 12
不为考试的话就去了解一下未定义行为、序列点。
2020年02月14日 07点02分 5
level 2
好好学,这才开始呢
2020年02月15日 08点02分 6
ttk
多谢,明白了
2020年02月22日 09点02分
level 2
推荐c primer plus
2020年02月15日 08点02分 7
level 5
未定义行为,后果不可预料,不同编译器结果可能不一样,自增自减在表达式中应该避免
2020年02月15日 08点02分 8
level 11
这种计算毫无意义,不同的编译器算出来结果可能都不一样,知道大致的运算顺序就行,不要搞些这种稀奇古怪的计算题[吐舌]
2020年02月15日 10点02分 9
level 1
不建议这样写程序会出问题的,比如
2020年02月15日 10点02分 10
level 8
编译器不一样结果都不同。。。
2020年02月15日 11点02分 11
level 3
这种可能是6+8+8,怎么算都有可能,最好别写这种代码
2020年02月15日 11点02分 12
level 6
这题没什么意义,正常代码不会这么写的,知道i++是什么就够了
2020年02月17日 12点02分 14
level 9
这种问题你没有必要研究,至少现在是没有研究的能力的。它其实是和编译器的代码优化有关系,如果你非要弄明白,先去学汇编,不用学太深。然后运行你这个程序时用vs自带的反汇编模块看一下编译出来的汇编代码,你就什么都明白了
2020年02月18日 05点02分 15
ttk
多谢,明白了
2020年02月22日 09点02分
1