C語言二維陣列的名稱的困惑?

時間 2021-07-06 20:33:25

1樓:暮無井見鈴

講無型別的位址本身儲存什麼值沒有意義。

位址是什麼型別指標的值(要求合法且非 NULL ),「該位址」就儲存這個型別的物件。注意具體程式中能合法讀取某個位址的指標型別是較為有限的。

arr 是 int[10][10] 型別陣列物件,可以隱式轉換成 int(*)[10] 型別指標值。該指標值指向陣列首元素。

(取 &/sizeof/_Alignof 時不轉換,其他情況轉換)

陣列隱式轉換成的指標值,和陣列裡的元素值無關,只和陣列自身位址有關。

*arr( arr[0] 為其等價寫法) 是 arr 隱式轉換成的指標所指向的元素,亦是 arr 陣列的首元素。它是 int[10] 型別陣列,同樣可以隱式轉換成 int* 型別指標值。

轉換得到的指標值指向 arr[0][0] 這個元素。

arr[0] 與 arr[0][0] 這兩個物件始於同一位址(後者是前者的子物件),故其位址列印時(隱式轉換成 const void* )結果相同。

C 語言指標的指標和二維陣列的區別

已登出 C系的二維陣列是按行儲存的普通陣列,而不是在託管 指令碼語言中更普遍的引用陣列,二維陣列是乙個 以行為單元的陣列 而不是 以對陣列的引用為單元的陣列 也就是說,T x y 是 Array 當然C系不會這麼寫 而不是Array。所以typeof T x y 也就是說typeof a 是T y ...

c 如何自定義乙個返回二維陣列的函式而不是首位址?

如果你說的是內建陣列,那是不可以的。但是,如果你願意可以使用C 11標準模板庫裡面的array,封裝成了模板類,提供了拷貝建構函式,可以直接返回乙個array。 旺旺 C 語言標準裡面倒是真寫了函式不能返回陣列,在 版標準裡沒看到相關論述,在 版標準裡面看到了,函式不能返回陣列,但可以返回對陣列的引...

為什麼不能用 (a i)的形式表示二維陣列的元素,而b n 形式的卻可以?

欣梓 因為二維陣列名,也就a可以看作乙個二級指標,所以 a是指向行的指標 確切的說是指向第一行的指標,存放的是第一行第一列元素的位址 所以你要想輸出元素,得使用 a 的形式,第一行第二列元素就是a 1 嵌入式Linux include stdio.h intmain intarr2 4 4 int ...