c++ - 保存数组地址的指针地址如何相同?

标签 c++ c arrays pointers

这里的p是一个整型指针,可以保存int变量的地址,但它也有一个内存地址——存放它的地方。

让 数组的基址 a = 1002 指针地址 p = 2008

当我们写:int *p=a;//p指向数组a的基址
int **r=&p;//表示*r指向p的地址

*r如何指向a的地址,应该指向p的地址。

#include <stdio.h>
void main()
{
    int a[3] = {1, 2, 3};
    int *p =a;
    int **r = &p;
    printf("%p %p", *r, a);
}

最佳答案

您的 printf 不正确。它应该是 r 打印地址 r 指向:

printf("%p %p", r, a);

通过使用 *r,您可以引用 r(即跳转到 r 指向的地址),从而打印地址一个

关于c++ - 保存数组地址的指针地址如何相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31675469/

相关文章:

c++ - 多线程中对象的行为

c++ - 静态函数和类变量的访问

memcpy 或 memmove 可以返回与 dest 不同的指针吗?

c - 如何使用 Windows 将 Meschach 库链接到 C 程序

c++ - if语句中float的转换

c++ - 如何分配内存块并将其放入Cache?

C++ 程序在不同的计算机上给出不同的结果

c++ - 通过对数组元素的引用替换变量

c++ - 如何在内部 while 循环中跳出 for 循环

javascript - 如何为 javascript 元素数组中的所有元素分配监听器?