|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 二维数组指针问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
547
人关注过本帖
标题:
二维数组指针问题
取消只看楼主
加入收藏
lvqing9
等 级:
新手上路
帖 子:5
专家分:0
注 册:2010-8-13
结帖率:
50%
楼主
收藏
已结贴
√
问题点数:20 回复次数:2
二维数组指针问题
假设有如下数组定义语句:
int array[3][4];
array+i
和
*(array+i),
为什么是一样的啊?
我知道
array+i
指的是数组第i行地址,
*(array+i)
是什么啊?
在别的地方看有人说是第i行第一个元素的地址。为什么是这样?一般用“
*
”这个符号是求存在于某个地址的值,这里怎么能用它来求地址啊。
为什么要求array[i][0]的值要用
*(*(array+i))
啊?
很烦啊!
大家一定要帮忙啊!
搜索更多相关主题的帖子:
指针
2010-08-18 10:12
举报帖子
使用道具
赠送鲜花
lvqing9
等 级:
新手上路
帖 子:5
专家分:0
注 册:2010-8-13
第
2
楼
收藏
得分:0
用一维数组的观点去理解,这个数组是一个三行四列的二维数组。可以看成是三个一维数组组成的,我们把它命名为a[1],a[2],a[3]分别代表三行的数组,每个数组里又含有4个数。这样我们就可以用一维数组指针的观点却解决这个问题了!
在一维数组指针当中a[i]==*(a+i),所以在二维数组当中我们可以用*(a+i)表示二维数组当中的a[i],在二维数组当中a[i]代表我们把它
看成的
一维数组名,这时只能表示
首地址
(
数组名代表首地址
)。
就如同一维数组名只代表一维数组的首地址一样
。其实这时的二维数组就是在一维数组的名下每个又有几个元素罢了!
所以在二维数组中a+i表示a[i]的地址也即
行地址
,*(a+i)表示a[i]的
首地址。
首地址找到了该行地址就找到了,所以可以说明a+i和*(a+i)是一样的。
这是我想了半天的结果,拿出来让大家看看。最后我觉得对于一个二维数组a[i][j]大家可以这样看
"( a[i] )[j]".
2010-08-18 11:52
举报帖子
使用道具
赠送鲜花
lvqing9
等 级:
新手上路
帖 子:5
专家分:0
注 册:2010-8-13
第
3
楼
收藏
得分:0
回复 3楼 燕强
谢谢你!我最后也是这么想的。就这样理解吧!
2010-08-18 12:07
举报帖子
使用道具
赠送鲜花
3
1/1页
1
快速回复:
二维数组指针问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.030372 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved