| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2027 人关注过本帖
标题:数组名字为什么能做指针啊
只看楼主 加入收藏
jackys2006
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2006-3-10
收藏
得分:0 
以下是引用死了都要C在2007-6-27 13:49:02的发言:

`在书上看到了``说数组名字就是指针``

这是为什么呢```

这么说吧,对于编译器而言,
你定义一个数组:
int a[][];
相当于定义了一个指针:
int **a;

你说的一个是数组名称,一个是地址,
的确不一样,但是这是对于你而言;对于编译器而言,两者是一致的,实现同样的效果。

比如上课的时候,无论老师叫你的名字还是叫你的学号,
你都会站起来回答问题一样

[此贴子已经被作者于2007-11-18 12:59:42编辑过]


2007-11-18 12:58
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
书上要是这么说
那这本书就是错的
数组明只有在作为函数参数的时候才等于指针
见the c programming language或c专家编程

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-11-18 13:01
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

数组是一个连续的内容空间。当然要用地址找到这个空间。

所以“数组名”就是这个数组首元素的地址。(不然你怎么访问数组!)


不过数组名不等价于指针。(特别是多维数组,一维以上的)



//

[此贴子已经被作者于2007-11-18 13:06:46编辑过]


—>〉Sun〈<—
2007-11-18 13:03
jackys2006
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2006-3-10
收藏
得分:0 
以下是引用succubus在2007-11-18 13:01:30的发言:
书上要是这么说
那这本书就是错的
数组明只有在作为函数参数的时候才等于指针
见the c programming language或c专家编程

数组等于指针 这种说法从何说起???????????


2007-11-18 13:18
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
以下是引用jackys2006在2007-11-18 13:18:00的发言:

数组等于指针 这种说法从何说起???????????

数组名
打错了个字而已
但是错字也不影响你的理解吧
好歹明和名发音一样啊


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-11-18 13:20
lw_China
Rank: 1
来 自:peking
等 级:新手上路
帖 子:73
专家分:0
注 册:2007-11-4
收藏
得分:0 
以下是引用死了都要C在2007-6-27 13:55:01的发言:

我就是不明白为什么``数组的名字``是一个地址呢??

如果它不是地址的话,你觉得数组在计算机里面如何寻址呢?

数组就是一个连续的存储空间,谁都不知道系统给它分配的空间具体在哪,所以不管它分在哪,你都能用数组名找到呗.


在这里推荐一本书 <The C Programming Language>
2007-11-18 13:20
jackys2006
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2006-3-10
收藏
得分:0 
以下是引用succubus在2007-11-18 13:20:34的发言:

数组名
打错了个字而已
但是错字也不影响你的理解吧
好歹明和名发音一样啊

差之毫厘,谬以千里。
再说我谈的是理解的问题,不等同于编译器的实现。
何必抱着理论死啃?


2007-11-18 13:44
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
以下是引用jackys2006在2007-11-18 13:44:09的发言:

差之毫厘,谬以千里。
再说我谈的是理解的问题,不等同于编译器的实现。
何必抱着理论死啃?

一, 我从来不是抱着理论死啃的人
二, 我回答的是楼主的问题,不知道和你有什么关系
over


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-11-18 14:05
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
数组名相当于一个常量指针,不能修改.

倚天照海花无数,流水高山心自知。
2007-11-18 14:05
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
LS版主好像说错了,常量指针是指指向常量的指针,指针常量是指指向一个指针且不被修改,数组名应该相当于指针常量~

樱花大战,  有爱.
2007-11-18 21:47
快速回复:数组名字为什么能做指针啊
数据加载中...
 
   



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

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