看板 Programming 關於我們 聯絡資訊
如果說字串陣列的名字所存的就是這個陣列在記憶體中的位址 那麼對一個字串用一個一維陣列存取而言 也就是第一個字元的位址 亦即&[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
firejox:這跟你printf("%s",s[1]);不加&的道理是一 123.240.129.15 07/14 23:24
firejox:樣的 123.240.129.15 07/14 23:24
bemyself:意思是s[1]和&s[1]的值是同一個?怪怪的..140.112.241.190 07/14 23:58
nowar100:s[1] 代表走了一個 char [10] 到 e 的位 114.24.202.187 07/15 00:18
nowar100:指到的位址都一樣,只是型態不同,解讀 114.24.202.187 07/15 00:19
nowar100:方式不同 114.24.202.187 07/15 00:20
purpose:你猜了很多東西,都不對,先去翻書吧 124.8.145.156 07/15 01:03
bemyself:我知了 不過後來弄懂了XD 感謝樓上點醒140.112.241.190 07/16 00:47