以下几段代码完全相同吗?
*(*(array+ x) + y) = 1;和array[x][y] = 1;一样
*(*(array+ x) + y) = 1;
array[x][y] = 1;
如果array是一个双指针,指针数组,或二维数组类型,是的。
array
如果它是用户定义的类型,那么operator[]和operator+可能会以不一致的方式被覆盖。例如,如果array是std::vector,那么array[x]将起作用,而*(array + x)则不会。
operator[]
operator+
std::vector
array[x]
*(array + x)