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 語言語句中 指標和...