【C语言】冷知识——前置++和后置++

今天在学习运算符的时候,发现了一个非常有意思的现象,关于前置++和后置++的不同之处。

前置++是先给变量+1,然后进行使用
后置++是先使用变量,然后进行+1.

首先先给大家看一段代码,看看大家是否能正确得出结论

int i=0;
int j=0;
printf(%d %d %d”,i++,i++,i++);
printf(%d %d %d”,++j,++j,++j);

大家觉得答案是什么呢?可以先自己进行运算,下面我们给出结论:

2 , 1, 0 //后置++
3 , 3, 3 //前置++

是不是和大家想的一样呢?理清楚这些,我们首先需要知道参数的传递是由右向左进行传递的。

后置++

我们先来进行讨论后置++的情况,后置++编译器会生成一个临时空间进行存储,最后返回的也是临时空间的值,下面用图来解释一下
在这里插入图片描述

前置++

前置++并没有临时空间,所以直接在j上进行++,但不进行赋值,然后最后进行j的赋值。所以我们看到的是3个3
在这里插入图片描述

所以我们在使用++时,尽量使用前置++,这样可以避免编辑器生成的临时空间,减少开销,提高运行速度。

猜你喜欢

转载自blog.csdn.net/Vcrossover/article/details/112857946