C/C++编程笔记:C语言自增(++)和自减(--)运算符详解,笔记分享

一个整数类型的变量自身加 1 能够这样写:编程

a = a + 1;微信

或者学习

a += 1;spa

不过,C语言还支持另一种更加简洁的写法,就是:blog

a++;v8

或者get

++a;源码

这种写法叫作自加或自增,意思很明确,就是每次自身加 1。io

相应的,也有a--和--a,它们叫作自减,表示自身减 1。class

++和--分别称为自增运算符和自减运算符,它们在循环结构中使用很频繁。

自增和自减的示例:

#include<stdio.h>

intmain()

{

inta=10,b=20;

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

++a;

--b;

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

a++;

b--;

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

return0;

}

运行结果:

a=10, b=20

a=11, b=19

a=12, b=18

自增自减完成后,会用新值替换旧值,将新值保存在当前变量中。

自增自减的结果必须得有变量来接收,因此自增自减只能针对变量,不能针对数字,例如10++就是错误的。

须要重点说明的是,++ 在变量前面和后面是有区别的:

++ 在前面叫作前自增(例如 ++a)。前自增先进行自增运算,再进行其余操做。

++ 在后面叫作后自增(例如 a++)。后自增先进行其余操做,再进行自增运算。

自减(--)也同样,有前自减和后自减之分。

下面的例子能更好地说明前自增(前自减)和后自增(后自减)的区别:

#include<stdio.h>

intmain()

{

inta=10,b=20,c=30,d=40;

inta1=++a,b1=b++,c1=--c,d1=d--;

 

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

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

printf("c=%d, c1=%d\n",c,c1);

printf("d=%d, d1=%d\n",d,d1);

 

return0;

}

输出结果:

a=11, a1=11

b=21, b1=20

c=29, c1=29

d=39, d1=40

a、b、c、d 的输出结果相信你们没有疑问,下面重点分析a一、b一、c一、d1:

1) 对于a1=++a,先执行 ++a,结果为 11,再将 11 赋值给 a1,因此 a1 的最终值为11。而 a 通过自增,最终的值也为 11。

2) 对于b1=b++,b 的值并不会立马加 1,而是先把 b 原来的值交给 b1,而后再加 1。b 原来的值为 20,因此 b1 的值也就为 20。而 b 通过自增,最终值为 21。

3) 对于c1=--c,先执行 --c,结果为 29,再将 29 赋值给c1,因此 c1 的最终值为 29。而 c 通过自减,最终的值也为 29。

4) 对于d1=d--,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,而后再减 1。d 原来的值为 40,因此 d1 的值也就为 40。而 d 通过自减,最终值为 39。

能够看出:a1=++a;会先进行自增操做,再进行赋值操做;而b1=b++;会先进行赋值操做,再进行自增操做。c1=--c;和d1=d--;也是如此。

为了强化记忆,咱们再来看一个自增自减的综合示例:

#include<stdio.h>

intmain()

{

inta=12,b=1;

intc=a-(b--);// ①

intd=(++a)-(--b);// ②

printf("c=%d, d=%d\n",c,d);

return0;

}

输出结果:

c=11, d=14

咱们来分析一下:

1) 执行语句①时,由于是后自减,会先进行a-b运算,结果是 11,而后 b 再自减,就变成了 0;最后再将a-b的结果(也就是11)交给 c,因此 c 的值是 11。

2) 执行语句②以前,b 的值已经变成 0。对于d=(++a)-(--b),a 会先自增,变成 13,而后 b 再自减,变成 -1,最后再计算13-(-1),结果是 14,交给 d,因此 d 最终是 14。

因此,大家如今学到了吗?但愿本文对大家有帮助!


自学C/C++编程难度很大,不妨和一些志同道合的小伙伴一块儿学习成长!

C语言C++编程学习交流圈子,【点击进入微信公众号:C语言编程学习基地

有一些源码和资料分享,欢迎转行也学习编程的伙伴,和你们一块儿交流成长会比本身琢磨更快哦!

相关文章
相关标签/搜索