小编Fat*_*iku的帖子

为什么分配后获得不同的指针值?

所以我目前正在学习C ++,并试图掌握数组和指针之间的关系。下面的代码显示了我所做的作业。

int A[4] = {20, 30, 40, 50};
int p = A[0];
int* q = &p;
Run Code Online (Sandbox Code Playgroud)

现在,如果我打印出指针值,则会得到以下信息:

A == 0x7ffda1cb1ea0
&A == 0x7ffda1cb1ea0
&A[0] == 0x7ffda1cb1ea0
&p == 0x7ffda1cb1e94
q == 0x7ffda1cb1e94
&q == 0x7ffda1cb1e98
Run Code Online (Sandbox Code Playgroud)

我不真正理解为什么&A [0]和&p的值不同,即使赋值ist p = A [0]也是如此。即使q的大小显示为8,我也无法理解q和&q之间只有4个字节。任何帮助将不胜感激。

c++ arrays pointers

2
推荐指数
1
解决办法
83
查看次数

标签 统计

arrays ×1

c++ ×1

pointers ×1