求助,自学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
GTA小鸡
你的软件太差了,换一个吧
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
江南M8
好好学,这才开始呢
2020年02月15日 08点02分
6
ttk
多谢,明白了
2020年02月22日 09点02分
level 2
江南M8
推荐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
量子kr
这题没什么意义,正常代码不会这么写的,知道i++是什么就够了
2020年02月17日 12点02分
14
level 9
Acite✨
这种问题你没有必要研究,至少现在是没有研究的能力的。它其实是和编译器的代码优化有关系,如果你非要弄明白,先去学汇编,不用学太深。然后运行你这个程序时用vs自带的反汇编模块看一下编译出来的汇编代码,你就什么都明白了
2020年02月18日 05点02分
15
ttk
多谢,明白了
2020年02月22日 09点02分
1