C语言中的自增运算
求助,求分析下这两个运算过程的优先级和运算顺序,实在搞不懂{:5_110:} 反汇编一下看看就行了 本帖最后由 orino 于 2018-1-10 21:43 编辑表达式从左至右开始,碰到, 左++的优先级高于*,所以图1中是先把i+1再去乘i,结果为4;图2从左开始,先碰到*,所以先乘出1,然后碰到*和++,同理先i+1再将结果与之前乘出的1相乘,结果自然为2 两图的区别是,图1自增后,导致原来的i变了,结果自然为4,而图2只是自增后与保存的中间值1相乘,所以为2。当然不需要去纠结这种问题,因为这种具体的编译实现与不同的编译器有关,在VC是这个编译结果,没准再g++上是另外的结果。这种表达式的写法不提倡,还是提倡规范不容易引起误导的。当然如果只是应付考试,那还是记答案算了
页:
[1]