引言


相信大家学习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
是不是很简单呢?