我刚刚得到了解代码如何工作的任务。二维数组,*(pointerArray [i] + j)是什么?
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;
}
}
我courious有关的东西是*(pointerArray [I] + J),我认为这是同样的事情pointerArray [i] [j],因为你可以访问两种方式的元素,但任何人都可以告诉我,*()实际发生了什么?就像编译器如何知道im要求与pointerArray [i] [j]一样?
感谢您的答案!
这或许有助于HTTP:// stackoverflow.com/questions/381542/in-c-arrays-why-is-this-true-a5-5a。另外,请不要使用家庭作业标签,因为它已被弃用 – chris
其实'a [i]'是定义为'*(a + i)',对于a和i的任意组合,其中一个是指针,另一个是整数。 –
好的,我会记住chris,谢谢。 – Destidom