| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4091 人关注过本帖, 1 人收藏
标题:字符数组的起始地址让我很困惑……
只看楼主 加入收藏
YuriGagarin
Rank: 1
等 级:新手上路
帖 子:46
专家分:5
注 册:2008-2-22
收藏
得分:0 
数组名为c,占6个字节。数组名c代表地址2000。可以用下面的输出语句得到数组的起始地址
  printf("%o",c);  /*用八进制形式输出数组c的起始地址*/
输出数组c的起始地址2000。可知数组名c代表数组起始地址。

数组c的起始地址,与“输出语句得到数组的起始地址”得到的地址是一会事吗??

  如果是,为什么结果又不一样的??
2008-07-23 21:33
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
数组名为c,占6个字节。数组名c代表地址2000。可以用下面的输出语句得到数组的起始地址。

数组名为c,占6个字节。[bo]假设数组从2000地址开始,则[/bo]数组名c代表地址2000。可以用下面的输出语句得到数组的起始地址。

死脑筋。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-24 15:06
YuriGagarin
Rank: 1
等 级:新手上路
帖 子:46
专家分:5
注 册:2008-2-22
收藏
得分:0 
死脑筋?看来,我真得不适合编程啊?!!
我所疑惑的“2000”和“17722”都是逻辑地址,指的是一会儿事。只不过,前者是假设,后者是真实输出的!
  而这个“2000”,也是可以重新定义的(可能不叫“重新定义”,反正就是差不多的意思),只不过不是我这样的定义——
#include <stdio.h>
void main()
{
char c[6];
scanf("%s",c);
printf("%o\n",c);
}

  我这样写,输出是对的。但却没有“重新定义”数组c的地址

  我这样理解和认识,对吗??

[[it] 本帖最后由 YuriGagarin 于 2008-7-25 12:08 编辑 [/it]]
2008-07-24 17:29
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
你所谓的“重新定义”,其实是编译器管理的,不过不止是编译器,和后台也有一定的关系。
我只能简单地告诉你,你得到的地址的值是随机的,但是无论它是多少,它都是这个数组的地址。就是这样。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-25 10:10
快速回复:字符数组的起始地址让我很困惑……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027305 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved