【发布时间】:2012-09-16 09:40:37
【问题描述】:
我刚刚得到了找出这段代码是如何工作的任务。
int array[rows][coloums];
int *pointerArray[rows];
for (int i = 0; i < rows; i++) {
pointerArray[i] = array[i];
for (int j = 0; j < coloums; j++) {
*(pointerArray[i] + j) = 0;
}
}
我很感兴趣的是*(pointerArray[i] + j),我认为它和pointerArray[i][j]是一样的,因为你可以通过两种方式访问元素,但是谁能告诉我 *() 到底发生了什么?就像编译器如何知道我要求与 pointerArray[i][j] 相同的?
感谢您的回答!
【问题讨论】:
-
也许这有帮助? stackoverflow.com/questions/381542/…。另外,请不要使用 homework 标签,因为它已被弃用。
-
实际上
a[i]被定义为*(a+i)用于a 和I 的任意组合,其中一个是指针,另一个是整数。 -
好的,我会记住的,克里斯,谢谢。
标签: c++ pointers multidimensional-array