Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 指针地址_C++_Pointers - Fatal编程技术网

C++ 指针地址

C++ 指针地址,c++,pointers,C++,Pointers,为什么我们不能将一个指针的地址存储在另一个指针中?指针只是一种特殊类型的变量,它有一些地址,但为什么我不能将该地址存储到另一个指针中呢 int main() { int * ptr; int * q; q = &ptr; } 为什么这段代码是错误的?您可以将指针的地址或任何其他对象类型存储在另一个指针中。但是你必须把字体弄对;您试图将指针的地址存储在指向int的指针中,而不是指向指针的指针 int ** q = &ptr; // pointer to

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

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

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

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

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

为什么要使用**,有什么逻辑原因吗???@NileshKumar:它的意思是“指针指向指针”。一般来说,
*
表示“指向
的指针”;因此
int*
表示“指向
int
”的指针,
int**
表示“指向
int
”的指针。此外,运算符
的“地址”类型是指向操作数类型的指针。因此,如果您有一个
int foo
和do
&foo
,那么结果类型是
int*
。同样,如果您有一个
char*bar
并且没有
&bar
,则结果类型为
char**
。所以
&
又加了一颗星;-)