相信大家在初学C语言的时候都对什么是自增和自减存在过疑惑,甚至在听完概念后也是一知半解。不用担心,下面课课家小编就详细为大家解释到底什么是自增和自减,让大家在接下来的学习中不再疑惑。
所谓C语言中的自增和自减就是“++,--”的操作符,比如a++等效于a = a + 1;这是简化写法,--同理,而自增自减又分前置和后置,区别是前置的话先自减再运算,后置的是先运算再自减,为了使大家更加透彻的理解,下面小编以一个整数自身加一举例:a+=1;它等价于a=a+1;。在C语言中还有一种更简单的写法就是a++;或者++a;。这种写法叫做自加或自增,意思就是自身加一。相应的,也有a--和--a,叫做自减,表示自身减一。++和--分别称为自增和自减运算符。下面是自增和自减的例子:
#include
#include
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);
system("pause");
return0;
}
运行结果:
a=10,b=20
a=11,b=19
a=12,b=18
自增自减完成后,会用新值替换旧值,并将新值保存在当前变量中。自增自减只能针对变量而不能针对数字,比如8++是错误的。值得注意的是,++在变量前面和后面是有区别的:
①++在前面叫做前自增(例如++a)。前自增先进行自增操作,再进行其他操作。
②++在后面叫做后自增(例如a++)。后自增先进行其他操作,再进行自增操作。
图1
同理自减(--)也一样,有前自减和后自减之分。
具体大家请看下面的例子:
#include
#include
intmain()
{
inta=10,a1=++a;
intb=20,b1=b++;
intc=30,c1=--c;
intd=40,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);
system("pause");
return0;
}
输出结果:
a=11,a1=11
b=21,b1=20
c=29,c1=29
d=39,d1=40
a、b、c、d的输出结果相信大家对此没有疑问,我们下面重点分析a1、b1、c1、d1:
①对于a1=++a,先执行++a,结果为11,再将11赋值给a1,所以a1的最终值为11。而a经过自增,最终的值也为11。
②对于b1=b++,b的值并不会立马加1,而是先把b原来的值交给b1,然后再加1。b原来的值为20,所以b1的值也就为20。而b经过自增,最终值为21。
③对于c1=--c,先执行--c,结果为29,再将29赋值给c1,所以c1的最终值为29。而c经过自减,最终的值也为29。
④对于d1=d--,d的值并不会立马减1,而是先把d原来的值交给d1,然后再减1。d原来的值为40,所以d1的值也就为40。而d经过自减,最终值为39。
可以看出:a1=++a;会先进行自增操作,再进行赋值操作;而b1=b++;会先进行赋值操作,再进行自增操作。c1=--c;和d1=d--;也是如此。
为了给大家更深的理解,下面小编再列举一个自增自减的例子:
#include
#include
intmain()
{
inta=12;
intb=1;
intc=a-(b--);//①
intd=(++a)-(--b);//②
printf("c=%d,d=%d\\n",c,d);
system("pause");
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语言起到一定的帮助。
¥100.00
¥150.00
¥98.00
¥25.00¥49.00