一个双指针可以用c++写成两种方式吗?
Can a double pointer be written in two ways in c++?
下面的代码片段是否做完全相同的事情?
*(*(array+ x) + y) = 1;
与 array[x][y] = 1;
相同
如果array
是双指针、指针数组或二维数组类型,是。
如果它是用户定义的类型,则 operator[]
和 operator+
可能会以不一致的方式被覆盖。例如,如果 array
是 std::vector
,那么 array[x]
会起作用,而 *(array + x)
不会。
下面的代码片段是否做完全相同的事情?
*(*(array+ x) + y) = 1;
与 array[x][y] = 1;
如果array
是双指针、指针数组或二维数组类型,是。
如果它是用户定义的类型,则 operator[]
和 operator+
可能会以不一致的方式被覆盖。例如,如果 array
是 std::vector
,那么 array[x]
会起作用,而 *(array + x)
不会。