2020-01-30 13:40发布
monkerman 发表于 2013-4-26 08:59 唉......VC 的结果既然是这样, 我就给解释下吧. 首先从右往左: ++j 后 j 变成了 3, 注意前加操作是先自 ...
takashiki 发表于 2013-4-26 09:34 又是一个深受谭浩强毒害的……你已经发现这个是坑了,为什么还要往里跳?C语言的陷阱防不胜防的。 主要原 ...
小德GD 发表于 2013-4-26 12:56 非常谢谢你用心的回答。想再麻烦问下“i, 当然也是 4, 因为 , 号不是序列点.”这句话怎么理解? ...
最多设置5个标签!
非常谢谢你用心的回答。想再麻烦问下“i, 当然也是 4, 因为 , 号不是序列点.”这句话怎么理解?
恩,受教了,谢谢
不客气. 我也只是恰好知道.
第一个 i 的值其实是第二个 i++ 的 i 值, 因为 VC 对后加操作的自增是在语句结束之后, 也就是分号. 所以还是 4, 逗号在这里并不被当作是序列点.
剩下的上面已经解释了. 你可以改一下, 然后再看结果. 多来几次可能就明白了. 强烈建议比看反汇编, 看到 incl 指令就明白了.
例如:
- printf("%d, %d, %d, %d", i++, i++, i += j++, ++j); // 看一下结果, 测试时可以这么写, 正式时千万别这么写, 会被骂的.
复制代码一周热门 更多>