++和--操作符

单目操作符:++和--

前面介绍的操作符都有两个操作数,C语言中还有一些只有一个操作数的,被称作单目操作符

1.++操作符

++是一种自增1的操作符,又分别为前置++和后置++

1.1.前置++

1 int a=10

2 b=++a;

3 printf("a=%d b=%d\n",a,b);

计算口诀:先加1,后使用;

a原来是10,先加1,后a变成11,在使用就是赋值给b,b得到的也是11,所以计算技术后,a和b都是11,相当于这样的代码;

1 int a=10

2 a=a+1

3 b=a;

4 printf("a=%d b=%d\n",a,b);

1.2.后置

1 int a=10

2 int b=a++;

3 printf("a=%d b=%d\n",a,b);

计算口诀:先使用,后加1

a原来是10,先使用,就是先赋值给b,b得到10,然后再加1,然后a变成了11,所以计算技术以后,a=11,b=10,相当于这样的代码;

1 int a=10

2 int b=a;

3 a=a+1

4 printf("a=%d b=%d\n",a,b);

2.--操作符

--是一种自减1的操作符,又分别为前置--和后置--

2.1.前置--

如果你听懂了前置++,那么前置--是同理的,只把加1换减1.

计算口诀:先减1,后使用

1 int a=10

2 int b=--a;

3 printf("a=%d b=%d\n",a,b);//输出结果:9 9

2.2.后置

同理后置--类似于后置++,只是把加一换成减一。

计算口诀:先试用,后减1

1 int a=10

2 int b=a--;

3 printf("a=%d b=%d\n",a,b);输出结果:9 10

3.副作用

++和--是有副作用的

比如;

1 int a =10;

2 int b=a+1;//这个表达式中b得到了11,a还是10,没有副作用

3

4 int a =10;

5 int b =++a;//这个表达式中,b得到了11,a也变化了,变成了11,++是有副作用的

对于带有副作用的表达式,尽量不要写的太复杂。

#include <stdio.h>
int main()
{
int i=42;
int j;
j=(i++ +10);
//i=42
//j=52
j=(++i+10);
//i=44
//j=54
return 0;
}

上面示例中,自增运算符的位置差异,会导致变量j得到不同的值。这样的写法很容易出现意料之外的结果,为了消除意外,可以改写下面的写法。

1 /*写法一*/

2 j=(i+10);

3 i++;

4

5 /*写法二*/

6 i++;

7 j=(i+10);

上面示例中,变量的自增运算与返回值是分离的两个步骤,这样就不太会出错,也提高了代码的可读性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值