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元素数组。