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
C++——取地址和自增运算_第1张图片
先p自增,然后取内容,技术上说叫左结合,就是谁离得近先算谁。
*++p
C++——取地址和自增运算_第2张图片
还有
p++,先取地址,但无效,再自增到a[1],故不反应到输出上。
C++——取地址和自增运算_第3张图片
C++——取地址和自增运算_第4张图片

总结

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

你可能感兴趣的:(开发,c++)