C语言初探之自增(++)和自减(--)

    作者:课课家教育更新于: 2016-11-25 17:06:14

    大神带你学编程,欢迎选课

      相信大家在初学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

     

    图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,然后再加1b原来的值为20,所以b1的值也就为20。而b经过自增,最终值为21

      ③对于c1=--c,先执行--c,结果为29,再将29赋值给c1,所以c1的最终值为29。而c经过自减,最终的值也为29

      ④对于d1=d--d的值并不会立马减1,而是先把d原来的值交给d1,然后再减1d原来的值为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语言起到一定的帮助。

C语言 更多推荐

课课家教育

未登录