C/C++的前置++、后置++以及前置--、后置--使用的详细讲解

在c/c++语言中,变量的自增和自减经常被使用到,所以今天就来个详细讲解。本次讲解用到的语言是c语言,在c++中的原理也是一样的。

变量自增自减分为四种情况,每种情况的结果都有所差异,四种情况分别为前置++、后置++、前置--、后置--。下面我们就详细对这四种情况进行学习。

1、前置++

写法:++i

就是把++操作符放在变量的前面,那怎么用呢,我们就以代码的形式展示。

int i = 2;
printf("%d\n",++i);
printf("%d\n", i);

我们看上面的代码,定义了一个变量i,如果分别打印++i和i的结果,那铁子们思考一下结果是什么呢?思考出来了就看下面编译器的结果,是不是跟你想的一样呢?

结果为什么是这样?要想知道,那我们就先搞清楚++i是什么原理?

++i,这条代码其实编译器做了两步操作,是哪两步操作呢。

int i = 2;
//++i的两步操作
(++i) = i + 1;
i = i + 1;

所以编译器看到++i操作之后,会先让(++i)的结果等于 i + 1,然后i = i + 1;这两步执行完了之后就相当于++i执行完了。所以大家看到这里,就知道了++i这个操作的原理了吧,也知道上面的代码结果为什么是3、3了吧。

有了++i的基础了,其他三种情况也大差不差的。

2、后置++

写法:i++

我们就直接上代码。

这个代码和上面的代码一样,只是把++i变成了i++,为什么结果就变了呢。

其实编译器看到i++这个操作之后,内部也会去执行两个操作。

//i++的两步操作
(i++) = i;
i = i+1;

编译器看到i++操作之后,会先让(i++)的结果等于 i ,然后i = i + 1;这两步执行完了之后就相当于i++执行完了。所以上面代码的结果为2、3。

3、前置--

写法:--i

这里--i和++i是一样的原理,只是把自增变成了自减。我们也来看看编译器是如何执行的吧。

 //--i的两步操作
 (--i) = i - 1;
 i = i - 1;

编译器看到--i操作之后,会先让(--i)的结果等于 i -1,然后i = i - 1;这两步执行完了之后就相当于--i执行完了。所以上面代码的结果为1、1。

4、后置--

写法:i--

这里i--和i++是一样的原理,只是把自增变成了自减。我们也来看看编译器是如何执行的吧。

   //--i的两步操作
  (i--) = i;
  i = i - 1;

编译器看到i--操作之后,会先让(i--)的结果等于 i ,然后i = i - 1;这两步执行完了之后就相当于i--执行完了。所以上面代码的结果为2、1。

上面四种情况中,我们都把++i、i++、--i、i--可以看成一个表达式进行处理,如果代码为int i = 2;int a = ++i;代码中a的值为(++i)表达式的值,而这个值又是变量i进行操作之后的值。

前置++、前置--: 变量先自增或自减,然后把变量的值赋给表达式。

后置++、后置--: 先把变量的值赋给表达式,然后变量自增或自减。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值