c++ - 一个双指针可以用c++写成两种方式吗?

标签 c++ pointers dynamic-arrays double-pointer

下面的代码片段是否做完全相同的事情?

*(*(array+ x) + y) = 1; 等同于 array[x][y] = 1;

最佳答案

如果 array 是双指针、指针数组或二维数组类型,是。

如果它是用户定义的类型,则 operator[]operator+ 可能会以不一致的方式被覆盖。例如,如果 array 是一个 std::vector 那么 array[x] 将起作用并且 *(array + x) 不会。

关于c++ - 一个双指针可以用c++写成两种方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55788074/

相关文章:

c++ - 具有指针数组 C++ 的类的析构函数

Excel 跨列唯一

c++ - 私有(private)和 protected 纯虚函数之间有什么区别吗?

c++ - 数组和指针

c - 将 2D 数组指针传递给 C 中的函数

c - 为什么在尝试填充结构时出现段错误(核心转储)或总线错误(核心转储)?

c - 段错误加载字典。它是由 calloc、sys/stat.h 还是其他原因引起的?

c++ - 将具有数组数据成员的结构保存到文件

c++ - 有没有 Winapi 方法可以将文件移动到回收站?

c++ - 错误 LNK2005 - 我在这里做错了什么?