[問題]二維字串陣列的內涵

看板Programming作者 (self)時間14年前 (2011/07/14 23:22), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
如果說字串陣列的名字所存的就是這個陣列在記憶體中的位址 那麼對一個字串用一個一維陣列存取而言 也就是第一個字元的位址 亦即&[array_name][0] 那如果我宣告一個二維陣列 char s[3][10] = {{abcd},{efgh},{hijk}}; 那像s[1]就是拿取第二個字串"efgh" 而且s[1] == &(s[1][0]) 那嚜s[i]就是一個一維陣列 存放著三個陣列的第一個字元的位址啊 且是一個array of pointer to character, i.e., string 那為何我printf("%p %p",s[1],&s[1]);時 印出來的是一樣的位址呢 不是應該前者是字串第一個字的位址 後者是存這前者的pointer的位址? 是哪裡出問題了?這種問題真的要弄懂啊 不然寫起來都怕怕的-皿- 請救救我...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.241.190

07/14 23:24, , 1F
這跟你printf("%s",s[1]);不加&的道理是一
07/14 23:24, 1F

07/14 23:24, , 2F
樣的
07/14 23:24, 2F

07/14 23:58, , 3F
意思是s[1]和&s[1]的值是同一個?怪怪的..
07/14 23:58, 3F

07/15 00:18, , 4F
s[1] 代表走了一個 char [10] 到 e 的位
07/15 00:18, 4F

07/15 00:19, , 5F
指到的位址都一樣,只是型態不同,解讀
07/15 00:19, 5F

07/15 00:20, , 6F
方式不同
07/15 00:20, 6F

07/15 01:03, , 7F
你猜了很多東西,都不對,先去翻書吧
07/15 01:03, 7F

07/16 00:47, , 8F
我知了 不過後來弄懂了XD 感謝樓上點醒
07/16 00:47, 8F
文章代碼(AID): #1E7mcUvi (Programming)
文章代碼(AID): #1E7mcUvi (Programming)