| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1006 人关注过本帖
标题:[求助]指针与二维数组的问题(已解决)
只看楼主 加入收藏
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
 问题点数:0 回复次数:4 
[求助]指针与二维数组的问题(已解决)
在我的书上是这样写的:
  int arr[2][3]
  因为数组名可以直接当成指针常量来操作,二维数组就可以看成是一种双重指针的应用.例如 *(arr+0) 是表示数组
  中第一维维度0的第一个元素的内存地址,也就是 arr[0][0] ,依次类推.
我的程序是用Dev-C++ 4.9.9.2,是这样编的:
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int arr[2][3]={{10,20,30},
                 {40,50,60}};

  puts("---------------------");
  puts("数组与指针的应用\t");
  printf("arr[%d][%d]= %d\n",0,0,*(arr+0));
  puts("---------------------");
 
  system("pause");
  return 0;
}

但是输出的结果却不是10,而是:
图片附件: 游客没有浏览图片的权限,请 登录注册

结果是2293584,怎么回事,请帮忙,谢谢!!

[[it] 本帖最后由 r251314w 于 2008-4-6 15:55 编辑 [/it]]
搜索更多相关主题的帖子: arr 指针 内存 int 
2008-03-24 18:31
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
printf("arr[%d][%d]= %d\n",0,0,*(arr+0));这样输出的是地址的十进制值
改成
printf("arr[%d][%d]= %d\n",0,0,**(arr+0));

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-03-24 20:56
Free自然
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2008-3-23
收藏
得分:0 
*(*arr+0)
2008-03-24 22:39
hyq1122
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-3-24
收藏
得分:0 
like this!
*arr==*(arr+0)==arr[0]
*arr[0]==*(*(arr+0))==**arr==arr[0][0]


你上面的,只是指向第一个元素的指针,这个一般是一个LONG类型的整数

[[it] 本帖最后由 hyq1122 于 2008-3-25 00:04 编辑 [/it]]
2008-03-25 00:02
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
得分:0 
谢了,我后来仔细思考才想起来
2008-04-06 15:54
快速回复:[求助]指针与二维数组的问题(已解决)
数据加载中...
 
   



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

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