指针的地址

Address of a pointer

为什么我们不能将一个指针的地址存储在另一个指针中?指针只是一种特殊类型的变量,它有一些地址,但为什么我不能将该地址存储到另一个指针中?

int main()
{
    int * ptr;
    int * q;
    q = &ptr;
}

为什么这个代码是错误的?

您可以将指针或任何其他对象类型的地址存储在另一个指针中。但是你必须把类型弄对;您试图将指针的地址存储在指向 int 的指针中,而不是指向指针的指针中。

int ** q = &ptr;   // pointer to pointer to int