作者bemyself (self)
看板Programming
标题[问题]二维字串阵列的内涵
时间Thu Jul 14 23:22:02 2011
如果说字串阵列的名字所存的就是这个阵列在记忆体中的位址
那麽对一个字串用一个一维阵列存取而言 也就是第一个字元的位址
亦即&[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
1F:→ firejox:这跟你printf("%s",s[1]);不加&的道理是一 123.240.129.15 07/14 23:24
2F:→ firejox:样的 123.240.129.15 07/14 23:24
3F:→ bemyself:意思是s[1]和&s[1]的值是同一个?怪怪的..140.112.241.190 07/14 23:58
4F:推 nowar100:s[1] 代表走了一个 char [10] 到 e 的位 114.24.202.187 07/15 00:18
5F:→ nowar100:指到的位址都一样,只是型态不同,解读 114.24.202.187 07/15 00:19
6F:→ nowar100:方式不同 114.24.202.187 07/15 00:20
7F:→ purpose:你猜了很多东西,都不对,先去翻书吧 124.8.145.156 07/15 01:03
8F:→ bemyself:我知了 不过後来弄懂了XD 感谢楼上点醒140.112.241.190 07/16 00:47