| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1259 人关注过本帖
标题:关于二维数组的问题
只看楼主 加入收藏
qianle
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-10-11
收藏
 问题点数:0 回复次数:10 
关于二维数组的问题

我是个新手,有个问题让我很困惑,请老鸟帮忙指点指点。
假如a是一个二维数组的名字的话,我们知道a 就是这个二维数组的首地址,我们知道首元素的值为a[0][0],而*a[0]也是首元素的值,而a==a[0]。这样的话,那是不是说*a==*a[0]==a[0][0],而且*a==a[0],**a==a[0][0];这样的话就会有*a==a;如果a==*a成立,那么是不是可以说*a==**a;我们知道*a是地址,是a[0],而**a是首元素的值。显然*a!=**a,但前面的推断又让它成立了,所以这点我很困惑,各位老鸟帮帮我这个菜鸟吧!~谢谢啦!!

搜索更多相关主题的帖子: 元素 困惑 推断 
2006-12-11 19:16
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 
a、a[0]、*a表示的是这个二维数组的首地址
即a==a[0]==*a
a[0][0]、*a[0]、**a表示的是这个二维数组第一个元素的值
即a[0][0]==*a[0]==**a

所以
*a!=*a[0]

*a!=a[0][0],

*a[0]==a[0][0]

如果还不清楚,最好自己写个程序试试看哦! 加油

我是金子,我要闪光的
2006-12-11 19:47
qianle
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-10-11
收藏
得分:0 

a、a[0]、*a表示的是这个二维数组的首地址
即a==a[0]==*a//就是这里了,是不是可以说a==*a呢?那是不是可以进一步说*a==**a?
a[0][0]、*a[0]、**a表示的是这个二维数组第一个元素的值
即a[0][0]==*a[0]==**a

所以
*a!=*a[0]

*a!=a[0][0],

*a[0]==a[0][0]

如果还不清楚,最好自己写个程序试试看哦! 加油

2006-12-12 04:52
qianle
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-10-11
收藏
得分:0 
有没有人可以告诉我c的数组的存贮机制是怎么回事啊?
2006-12-12 04:55
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 

不用我再说了吧
*a表示的是首地址而**a表示的是这个二维数组的第一个元素的值;除了a[0][0]中的存放的数值刚好和它是地址相等,不然怎么会出现*a==**a。这可不像数学中的+、-号啊,两边同乘、除一个数,等式还成立。


我是金子,我要闪光的
2006-12-13 17:46
qianle
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-10-11
收藏
得分:0 

即a==a[0]==*a//就是这里了,是不是可以说a==*a呢?那是不是可以进一步说*a==**a?
那么a==*a还是成立的了!那这样说的话只能a里面存放的是他自己的地址了?那******a不管*多少次那还是a啊!而不可能==a[0][0]。
如果a==a[0]==*a,而a!=*a。那么==到底是比较两边的什么呢?地址?值?还是其他什么?
假如一个int数组a[1][1],那它到底占多少内存空间呢?能不能介绍下它的存储机制是什么?

2006-12-13 19:55
abcBoy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-12-13
收藏
得分:0 
以下是引用lefttime在2006-12-11 19:47:34的发言:
a、a[0]、*a表示的是这个二维数组的首地址
即a==a[0]==*a //相等的是它们的地址,它们的意义是不同的!a是二级指针,a[0]是一级指针,*a==a[0]倒是没错。
a[0][0]、*a[0]、**a表示的是这个二维数组第一个元素的值
即a[0][0]==*a[0]==**a

所以
*a!=*a[0]

*a!=a[0][0],

*a[0]==a[0][0]

如果还不清楚,最好自己写个程序试试看哦! 加油
2006-12-13 20:17
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:354
专家分:224
注 册:2006-4-11
收藏
得分:0 
......从来不敢用二维的

2006-12-13 20:21
qianle
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-10-11
收藏
得分:0 

哦~不知道指针还有这样的区分。谢谢啦~~~~~~~

2006-12-14 15:14
linx218
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-12-10
收藏
得分:0 
  二维数组a[m][n]的数组名a是数组的首地址,这没有错,其实这个首地址是第一行的首地址,而第一行的首地址可表示为a[0],也就是*a==a[0].第一个元素的表示可用:a[0][0]==*a[0]==**a,而不能用*a.
2006-12-14 20:19
快速回复:关于二维数组的问题
数据加载中...
 
   



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

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