指標陣列與指向陣列的指標

2022-08-05 10:30:19 字數 378 閱讀 4196

1. int (*p)[4]

表示 p 是乙個指標變數,他指向包含 4 個元素的一維陣列。

2. int *p[4]

表示 *p[4]是指標陣列

這個問題我們採用以下的方式來理解它就一目了然了:

對於 int (*p)[4], 我們可以先將 (*p) 看成是乙個整體,並用 a 代替 變為 int a [4].  很容易看出,a 有4個元素,每個 元素為整型;那麼 *p 有4個元素,每個元素也為整型。也就是 p所指的物件是有 4個整形元素的陣列。因此,此時p只能只想乙個包含 4個元素的整型陣列。p+i 就是二維陣列第i行的位址。

對於int *p[4] 由於 運算級別高,因此p先於結合,是陣列有4個元素,然後再與前面的 *結合, *p[4] 是指標陣列

指標陣列與指向陣列的指標

指標陣列 定義 int p n 優先順序高,先與p結合成為乙個陣列,再由int 說明這是乙個整型指標陣列,它有n個指標型別的陣列元素。這裡執行p 1時,則p指向下乙個陣列元素,這樣賦值是錯誤的 p a 因為p是個不可知的表示,只存在p 0 p 1 p 2 p n 1 而且它們分別是指標變數可以用來存...

c 指標陣列與指向陣列的指標

1 int a 10 指向陣列的指標 a是乙個二級指標,可認為是乙個二維陣列的首位址,指向乙個一維陣列,陣列儲存了10個int資料。int arr1 10 一維陣列 int arr2 2 10 二維陣列 int a 10 arr1 a為指向一維陣列的指標,arr1 應該替換為 arr1,cblog外...

指標 陣列指標 指標陣列 指向指標的指標

程式中一般通過變數名對變數進行訪問操作,其實質是通過位址進行的。對變數的訪問分為直接訪問和間接訪問,如語句 printf d i 執行的時候,根據變數名 與位址的對應關係,找到i的位址,依次取相應的位元組數中的資料 即i的值 把它輸出。這種按照變數位址訪問變數值的方式成為直接訪問 還可以將變數i的位...