首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么取变量的地址.为何str和&str的值一样呢?详见代码

2013-08-04 
如何取变量的地址..为何str和&str的值一样呢?详见代码#include stdio.htypedef unsigned int ui int ma

如何取变量的地址..为何str和&str的值一样呢?详见代码

#include <stdio.h>
typedef unsigned int ui;
 int main()
{
 char str[10]="abdfhfd";

printf("%x\n",str);
printf("%x\n",&str);
printf("%x\n",&str[0]);

}
str 是字符数组的首地址,&str,应该是地址的地址,为什么str 和&str 显示的结果一样呢
C 地址
[解决办法]
我觉得楼上说得不是很正确,这个问题我也遇到过。你看一下这个网站:http://www.cppblog.com/cuigang/archive/2008/04/04/46271.html
上面有介绍。

按照这个网站上介绍的,我认为要把(&str)看成一个整体,它其实也是一个数组名。只不过类型是        char (*str)[100],与你定义的数组类型不一样。

楼下若有更好的解释,请更正。。。。
[解决办法]
char str[10];
str是一个变量,其类型为char [10],其值是一个数组,&str是这个变量的地址;
str[0]是数组里第一个元素,类型为char,其值是一个字符,&str[0]等价于&(str[0]),是这个数组的第一个元素的地址;
------------------------------------

[解决办法]
 str[0] 
[解决办法]
 str[1] 
[解决办法]
 ... 
[解决办法]
 ...
------------------------------------
str[0]的地址在这里,str的地址也在这里,他们当然相等啦
另外,你无法使用整个数组,当你在程序中直接使用str而不是别的形式时,str的意义将不再是一个数组变量,而是该数组的首元素的地址

热点排行