c语言中,int i=3,k=(i++)+(i++)+(i++);为什么执行结果是后k=9,i=6?求解。

2024-12-04 19:34:27
推荐回答(2个)
回答1:

这里涉及到运算顺序的问题。i++指先使用i的值,再将i加一。所以,k先等于三个i相加,结果是k=9。
i的值使用完毕后,再从第一个i++开始,对i加一,此时i=4;对第二个i++使i加一,此时i=5;最后对第三个i++使i加一,此时i=6。

回答2:

这个是因为(i++)不就是以i的值来算吗?加法是从左至右每两个和在一起计算,i++是算完后再加的吧
楼主还要注意这个问题
i=5; (++i)+(++i)+(++i)=22; 因为是从左至右计算,++i是要先算的,因此前两个(++i)统一算为7+7=14;再算最后一个14+8=22;