C++——取地址和自增运算

今天做了道题一下给我整蒙了,把实验探索发篇文章,题目如下:

int a[]={10,11,12},*p=&a[0];执行完*p++;*p+=1;后a[0],a[1],a[2]的值各为多少
答案是 10, 12, 12

怎么理解*p++,*p+=1呢,我觉得可以用汉语把代码读一下,p,然后p加加,同样的p,p等于p加1,这样读下来的结果就和答案一样,应该也就是电脑的运行过程了。
此外还对其他情况做了探索
++p,p指向的内容加加
++*p
结果
先p自增,然后取内容,技术上说叫左结合,就是谁离得近先算谁。
*++p
*++p结果
还有
p++,先取地址,但无效,再自增到a[1],故不反应到输出上。
*p++
*p++结果

总结

也就是做题,谁没事写代码这么写,用得着这么复合吗?也不是说谁代码短就运行效率高,拆几句写能怎么着,同学们可别自己给自己出难题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值