0
我想了解指針運算WRT二維數組中C.二維陣列指針問題
void pmanipulation(int arr[][5],int rows)
{
printf("arr=%d arr+1=%d *(arr)=%d *(arr+1)=%d\n",arr,arr+1,*(arr),*(arr+1));
}
在小的代碼段以上,我觀察到有明顯在通過ARR打印的值沒有不同+我和*(ARR + I)。爲什麼這樣?我知道在C arr +中,我將給出2D矩陣的第i行的基地址,但不應該在該地址處打印元素*(arr + i)?
感謝
'*(arr + i)'是一個長度爲5的數組。你可以用'printf()'打印數組嗎?是的,但只有'char'數組(= C字符串)。你有一個'int'數組。並且'*(arr + i)'給出了第i行第一個元素的*地址*,而'arr + i'給出了整個第一行的地址,這與'*(arr + i)'帶有微妙的差異,'*((arr + i)[n])'僅在''n' 5'步驟中通過元素和'(*(arr + i))[n]步驟。 – mb84
@ mb84-非常感謝您的解釋。 –