基本問題..不得不問。任何幫助將不勝感激。爲什麼我不能取消引用多維數組的指針?
問:爲什麼我不能解引用指針多維數組是這樣的:
int arr [2][2] = { {1, 2} , {3, 4} };
printf("%d ", *arr);
基本問題..不得不問。任何幫助將不勝感激。爲什麼我不能取消引用多維數組的指針?
問:爲什麼我不能解引用指針多維數組是這樣的:
int arr [2][2] = { {1, 2} , {3, 4} };
printf("%d ", *arr);
您可以取消對它的引用,它僅僅是它的結果不會是你所期望:*arr
不是int
,這是一個指向一個int
(OK,一維數組)。如果你想看到1
印刷,再添明星:
printf("%d ", **arr);
'* arr'實際上是一個一維陣列,其衰減到指針'int'。 – 2012-03-23 03:12:33
如果a
是int[][]
然後*a
是int[]
。您需要另一個級別的重定向來訪問數組元素。也就是說,**a
是int
。
請記住,如果我們定義爲INT [] [],那麼就意味着它是一個二維數組,它可以通過一個**來解除引用。如果數組是一維的話,就要使用*一個取消對它的引用...
試試吧..
一般情況下,你應該包括什麼錯誤(錯誤信息,預期的細節和實際輸出等。 )。 – 2012-03-23 01:03:49