c++ - 指针和动态分配的数组

标签 c++ arrays pointers

根据我的类笔记,你可以像在 C++ 中分配一个数组

int *A = new int[5]

其中 A 是指向数组的指针。

但随后您可以作为 A[3] 访问该数组。为什么你能做到? A 不是指针而不是实际的数组吗?

最佳答案

索引 operator[] 实际上被定义为在指针上工作,而不是在数组上工作。 A[3] 实际上是 *(A+3) 的同义词。它适用于数组,因为数组可以隐式转换为指向其第一个元素的指针。

关于c++ - 指针和动态分配的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762315/

相关文章:

javascript - 任何提供可调 dpi、可选文本和 CSS 支持的 HTML 到 PDF 渲染器?

Java 3D数组初始化

c# - 如果 C# 指针被认为是 "unsafe,",这是否意味着 C++ 指针也是 "unsafe"?

c++ - 将指针数组插入 std::vector 避免使用 push_back 复制对象

c++ - 如何在远程主机上使用 GNU 在 Netbeans7.1.1 中编译 C/C++

c++ - OpenCV : Assertion failed using one of the two constructors of SIFT

c++ - 不同数据类型的sizeof(datatype pointer)/sizeof(data type)取值不同,为什么?

c - C中箭头运算符之间的空间

c++ - GCC 元组 "invalid use of incomplete type"

错误类型的 C# 数组可能吗?