单目操作符:++和--
前面介绍的操作符都有两个操作数,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);
上面示例中,变量的自增运算与返回值是分离的两个步骤,这样就不太会出错,也提高了代码的可读性。
完
标签:11,10,++,--,int,操作符 From: https://blog.csdn.net/wangjing_0522/article/details/141534273