關於二維陣列和指標

2022-11-20 19:00:16 字數 745 閱讀 1130

1樓:兜裡有兩塊糖

p+10的值並不是未定義,正像你說的那樣把2維陣列看成一維陣列,首先將p指向這個一維陣列的首地址,而這個一維陣列的長度是20,也就是說當你p+10的時候指向的是b這個字元上,當你執行的時候會顯示beijing

2樓:希聲和寡

陣列實際儲存時是按照線形連續儲存的。

所謂一維陣列,二維陣列,三維陣列只是為了方便理解和使用,而對陣列進行的一種空間模型上的建模。

實際上的內部儲存還是線形連續的。

所以str這個二維陣列的實際儲存的方式為:

c,h,i,n,a,'\0',b,e,i,j,i,n,g,'\0'

3樓:ghos丶

多維陣列在儲存的時候都是作為一維陣列處理的。所以p+10可以輸出 beijing。

如果你像讓p一行一行的移動可以用行指標。

定義為int (*p)[10]=str; 這樣p+1 就是下一行的了

4樓:匿名使用者

理解錯了,p只是一個指標,已經沒有陣列的概念了。p就是str[0][0]的地址。

5樓:

應該是理解錯了

已經賦值的是兩個元素,其他沒賦值的有系統預設值的

6樓:_誠兒

*p = str;這句你認為能通過編譯嗎?str是一個指像指標的指標`2維指標一般都是(*p)[10] = str;這樣才行

c語言二維陣列與指標運算,C語言二維陣列與指標運算

在 p 4 中p是指向一個有4 個int元素的一維陣列的首地址,int p 4 a就相當於int p 4 p a 兩個語句,所以 p i 指向i行地址,p i c 指向i行c列的地址即a i c int p 4 a 表示指向一維陣列 4列 的指標,然後a 0 地址給了p,p i就表示a i 的地址....

C語言指標陣列與二維陣列行指標小問題

指標陣列 copy 該陣列中存放的全部都是指標,例如 原例子中的char name,這個是一個標準透了的一維陣列,就像是陣列 int a 4 a 1 2 a 2 3 不同的是陣列name存放的是指標,陣列a存放的是數字 name 1 name 2 表示的是把name 2 的指標賦值給name 1 就...

a二維陣列, a 2 二維陣列

a是二維陣列,每行5個int,a 2 指向第三行第1個int即 a 2 為2 5 1為11 a 2 代表第二行的首地址,也就是a 2 0 所以 a 2 就是a 2 0 那輸出肯定是11了 c 語言語句中 的 中括號,不是標點符號,而是 運算子!牢記 恆等式 x i x i 這是c 語言語句中 指標和...