我剛剛得到了解代碼如何工作的任務。二維數組,*(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