程序员的输出:
#include int main (){ int A[3] = {1,2,3}; printf("%u %u %u ",&A,A,*A); return 0; }
是:3216303812 3216303812 1
这里&A和A是相同的,这意味着a的地址与a的值相同,即A指向自身。 和* A表示存储在3216303812的值,我们知道A本身就是A = A ..那么1来自哪里? 怎么来* A = 1? 请帮忙
A
是指向数组第一个元素的指针,即它等同于&A[0]
。
&A
是指向整个数组的指针。
当然,这些地址具有相同的值 ,因为数组的第一个元素的地址与数组的地址相同。 但是它们有不同的类型 : A
产生指向int的指针,而&A
是指向int数组的指针。
A
表示&A[0]
,所以*A
等于数组中第一个元素的值,因此输出为1
。
以上就是c/c++开发分享指向自身的整数数组的起始地址?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/549568.html