php中关于自增的运算,浅谈C中自增“++”

对于xx++,++xx初学的时候都会觉得很难理解

看以下代码

int main()

{

int a=20,b;

b=a++;

printf("

a=%d,b=%d",a,b);

}

刚开始的不运行代码,按照我的理解最后输出 a=20,b=21,不知道是不是有朋友跟我一样的思路的呢。

代码运行结果

a=21,b=20;

a++中意思为a参与运算后再加1,怎么理解参与运算后再加1呢,b=a++请看下面的分析:

第一步:a赋值给b,此时a的值还为20,所以b=20而非21;

第二步:a增加参与运算后自己加1,所以此时a=21而非20;

前几天刚看到指针部分,用指针来看一波,指针变量int型加1地址增加4个地址,减也是相应的减4个地址

请看下面的代码

int main()

{

int a=20,*temp=&a,*temp1;

printf("未自增之前结果");

printf("

temp=%#X",temp);

temp1=temp++;

printf("

自增之后结果");

printf("

temp=%#X,temp1=%#X",temp,temp1);

}

运行后结果为:

未自增之前结果

temp=0X22FE3C

自增之后结果

temp=0X22FE40,temp1=0X22FE3C

看地址没执行temp++之前的地址为0X22FE3C,执行temp++后地址为0X22FE40,因为我们定义为int型,指针型变量加1地址加4,刚好加4个地址(D,E,F,0)在看temp2的地址还是0X22FE3C没变

综上2个例子已经说明xx++是先参与运算后再自加1

至于++xx则是先自增1再参与运算,有兴趣的同学可以自己试试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值