C语言—关于自增( a++和 ++a )的一些问题

网上很多朋友老是搞不懂a++和++a的区别,老是弄错,对于初学者也很纠结,,那是因为没有总结,,总因为这样就是累加,但是却忽略了它的规律。

下面我就总结一下这两者之间的规律,因为自减a——和——a跟自增的道理一样,这里只介绍自增

 

首先大家要记住一句口诀:

               “++a,加号在前,先加后用;

                 a++,a在前,先用后加”

口诀记住了,不代表就什么都懂了,第二步,我们来举个例子让大家彻底理解这两句话的意思

 

例如:(此处涉及一些结合性,这里不再多说)

void test1(){

  int a=1;

  int b=a++;

  printf("a=%d,b=%d",a,b);--->a=2,b=1

//分析:执行a++这句时   a++因为a在前,“先用后加”,“先用”-->故表达式(a++)=1,(先把a的值用了,即表达式a++的值为1),“后加”-->a加1后,a变为2.--打印a==2

    后再把a++赋值给b,即 打印b=1;                      

 

}

void test2(){

  int a=1;

     int  c=++a;

     printf("a=%d,c=%d\n",a,c);--->a=2,c=2;

//分析:执行++a这句时   ++a因为+在前,“先加后用”,“先加”-->a加1后,a变为2.“后用”-->故表达式(++a)=2,(先把a的值+1了,即表达式a++的值为2),--打印a==2

    后再把(++a)赋值给b,即 打印b=2;  

}

 

这上面是分开的写的,那么我们来一个两个在一起的练习

void test3(){

  int a=1,d;

   d=a+++++a+++a+a++;

  printf("%d,%d",a,d);-->a=4,d=7

//分析:根据结合性:(++)>(+),我们把这个表达式分一下,为:d=(a++)+(++a)+(++a)+(a++)

根据以前的口诀,还有就是变后得值,后面就得用变后的值了,我们往后分析一下

              (a=1)   a++   ++a    ++a     a++

                 表达式             1           3          4          4     --->这里每次都是利用上次的a值配合口诀得到的

              a的值             2           3          4          5     -->记住,不管a遇到++a还是++a,经过一个就是+1.一直累加

                    打印 a=5

                    打印d=(a++)+(++a)+(++a)+(a++)

                       =   1    +   3     +  4   +   4      

                        = 12

}

 

转载于:https://www.cnblogs.com/wxios/p/4170257.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值