引言
相信大家学习C语言编程的时候都遇到了一个问题
为啥i = (i++) + (++i)的计算结果等于5(i的初始值为1)
这里我们来具体分析一下
问题分析
引用库
- <stdio.h>
代码一
int main() { int i = 0; i++; printf("i=%d\n", i); ++i; printf("i=%d\n", i); }
i=1
执行结果
i=2
可以看出i++的执行结果与++i一样,都将i自身+1。
代码二
int main() { int i = 2, b = 0; b = i++; printf("b=%d;i=%d\n", b, i); }
b=2;i=3
执行结果
可以看到b等于i增加之前的值;
代码三
int main() { int i = 2, b = 0; b = ++i; printf("b=%d;i=%d\n", b, i); }
b=3;i=3
执行结果
可以看到b等于i增加之后的值
结论
i = (i++) + (++i)的计算结果之所以等于5(i的初始值为1)
是因为i++让i的值变成了2,然后++i输出了3
所以3+2=5
是不是很简单呢?