为什么计算结果不是24
#include<stdio.h>void main()
{
int i = 5, q;
q = (++i)+(++i)+(++i);
printf("q=%d,i=%d\n",q,i);
}
如题,按照逻辑计算不应该是24么,怎么跑出来是22? 本人用2019是24,版本不一样,结果不一样。
i5+ 1 = i6
i6 + 1= i7;i7赋给i6, i6是i7,(i7 + i7 = 14)
i7 + 1 = i8; (14 + i8 == 22)
个人认为,本人初学者。 编译器不同不一定一样
纠结这个没什么意义 q = (++i)+(++i)+(++i);
三个++i执行顺序是不一定的,所以结果未定义
页:
[1]