c++ - 将指针 * 分配给指针 ** 时如何工作?
问题描述
我正在学习指针。当我练习通过指针 ** 分配指针 * 然后 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;
}
请解释在将指针 * 分配给指针 ** 时它是如何工作的。非常感谢!
解决方案
通过将变量声明为 int **,您定义了一个指向整数指针的指针。因此,您应该将整数指针的地址分配给它。你可以这样做:
int **p_to_p = &ptr;
cout << **p_to_p << endl;