Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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++编程很陌生,并试图理解这个语法< /P> int **arr; arr = new int *[5];_C++_Arrays_Pointers - Fatal编程技术网

c++; 我对C++编程很陌生,并试图理解这个语法< /P> int **arr; arr = new int *[5];

c++; 我对C++编程很陌生,并试图理解这个语法< /P> int **arr; arr = new int *[5];,c++,arrays,pointers,C++,Arrays,Pointers,我对这一部分感到困惑新int*[5];它是否意味着int类型的指针指向5个子指针 任何帮助都将不胜感激。当您逐条阅读时,这一点将变得清晰: new int * [5] ^^^ ^^^^^ ^^^ give me pointers to int and five of those. 然后在arr中保护第一个新指针的地址,从而拥有一个动态分配的五个指针数组 请注意,“在现实世界中”(即,如果没有老师/教授禁止您这

我对这一部分感到困惑
新int*[5]
;它是否意味着int类型的指针指向5个子指针


任何帮助都将不胜感激。

当您逐条阅读时,这一点将变得清晰:

new        int *             [5]
^^^        ^^^^^             ^^^
give me    pointers to int   and five of those.
然后在
arr
中保护第一个新指针的地址,从而拥有一个动态分配的五个指针数组


请注意,“在现实世界中”(即,如果没有老师/教授禁止您这样做),您将使用
std::vector
而不是
new[]

当您逐段阅读时,这一点有望变得清晰:

new        int *             [5]
^^^        ^^^^^             ^^^
give me    pointers to int   and five of those.
然后在
arr
中保护第一个新指针的地址,从而拥有一个动态分配的五个指针数组


请注意,“在现实世界中”(即,如果没有老师/教授禁止您这样做),您将使用
std::vector
而不是
new[]
,您正在声明一个指向整数的指针数组。
阵列容量为5(指针)。

由于
new
,变量在动态内存中分配

您正在声明一个指向整数的指针数组。
阵列容量为5(指针)。

由于
new
,变量在动态内存中分配

当您对一个非平凡的类型有问题时,请使用typedef(至少在您的头脑中):


现在更容易理解了,不是吗?

当您对非琐碎的类型有问题时,请使用typedef(至少在您的头脑中):


现在更容易理解了,不是吗?

它是指指向5个子指针的int类型指针吗?
更像是一个“int-pointer”类型的指针,以及一个包含该类型的5元素数组。
它是指指向5个子指针的int类型指针吗?
更像是一个“int-pointer”类型的指针,以及一个包含该类型的5元素数组。