当前位置: 代码迷 >> C语言 >> [求助]"scanf("%s",&str);"等于"scanf(" ...
  详细解决方案

[求助]"scanf("%s",&str);"等于"scanf(" ...

热度:753   发布时间:2007-07-11 20:02:53.0

为什么第一种str==&str而后者str!=&str


----------------解决方案--------------------------------------------------------

难道就只归结于规定而不问深层原因?


----------------解决方案--------------------------------------------------------

明白了,字符数组名str代表数组首地址,和字符指针str的内容相同,但是两者毕竟有区别,字符指针是一个占有4个字节的变量,所以它的存放地址当然不等于它的指向地址,需要取得其指向内容用的就是str,而数组名并不是变量,可能只是类似于符号常量,并无实际地址,这样str作为数组名时&str就没有意义,或许&str只是一种容错处理


----------------解决方案--------------------------------------------------------

字符串......


----------------解决方案--------------------------------------------------------

多谢楼上的兄弟,说的确实很明白


----------------解决方案--------------------------------------------------------

因为是字符数组所以不用加地址符同样表示地址


----------------解决方案--------------------------------------------------------
默认字符串首字符的地址为首地址?!
----------------解决方案--------------------------------------------------------
  相关解决方案