首页 > 解决方案 > 将指针 * 分配给指针 ** 时如何工作?

问题描述

我正在学习指针。当我练习通过指针 ** 分配指针 * 然后 p_to_p = ptr 但 *p_to_p != *ptr。这是我的练习代码

#include <iostream>

using namespace std;

int main()  {
    
    int value = 100;
    int *ptr = &value;
    int **p_to_p = (int**)ptr;

    cout << p_to_p << "   " << ptr << endl; 
    cout << *p_to_p << "   " << *ptr << endl; 

    return 0;
}

请解释在将指针 * 分配给指针 ** 时它是如何工作的。非常感谢!

标签: c++

解决方案


通过将变量声明为 int **,您定义了一个指向整数指针的指针。因此,您应该将整数指针的地址分配给它。你可以这样做:

int **p_to_p = &ptr;
cout << **p_to_p << endl; 

推荐阅读