c++指针数组的语法
Syntax of arrays of pointers in c++
我是c++编程新手,试图理解这种语法
int **arr;
arr = new int *[5];
我对这部分new int *[5]
感到困惑;它是指指向5个子指针的整型指针吗?
当你逐条阅读时,你就会清楚了:
new int * [5]
^^^ ^^^^^ ^^^
give me pointers to int and five of those.
然后保护arr
中第一个新指针的地址,从而得到一个由五个指针动态分配的数组。
请注意,"在现实世界中"(即,如果没有老师/教授禁止你这样做),你将使用std::vector
而不是new[]
。
你在声明一个指向整型的指针数组。
数组容量为5个(指针)。
由于new
的原因,该变量被分配在动态内存中。
当你遇到不重要的类型问题时,使用typedef(至少在你的头脑中):
typedef int* int_ptr;
int_ptr *arr;
arr = new int_ptr[5];
现在更容易理解了,不是吗?
相关文章:
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法差异:二维和一维数组(指针算术)
- 解释通过从函数引用返回数组的语法
- 模板堆栈对象的数组;语法
- 在 C++ 中使用平展数组语法,崩溃取决于宽度/高度
- C++ C 样式数组作为语法错误的参数
- C 指针数组的语法
- 与解除分配堆数组相关的语法混淆
- 将 GNU Octave(或 Matlab)矩阵输出到具有 C 数组语法的文件中
- 在 c++ 中移动 2d 数组的构造函数(语法逻辑不清楚):
- 在C 中,可以用语法[i,j,..]实现访问数组元素的功能,而语法就像numpy中的ndarray样式一样
- 指向成员的指针的语法糖适用于数组,但不适用于 std::vector
- C++ - 与号+括号数组语法
- 数组的语法指针C++
- 这是指向大小为 3 个字符数组的指针数组的正确语法吗?
- 正确的语法以对 char* 数组使用 new
- unique_ptr之外的数组模板语法
- 类似C的数组语法
- C函数参数中的数组语法与指针语法
- 指向数组语法的指针