| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:[求助]二维数组的输出
只看楼主 加入收藏
Standford
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-10-5
收藏
 问题点数:0 回复次数:7 
[求助]二维数组的输出
#include <iostream>
using namespace std;
int main()
{ int array2[2][3]={{11,12,13},{21,22,23}};
for(int i=0;i<2;i++)
{ cout<<*(array2+i)<<endl; //这里输出代表什么,为什么会是地址,array2是数组首地址,*(array2+i)怎么不是对应的元素
for(int j=0;j<3;j++)
{ cout<<*(*(array2+i)+j)<<" ";
//或者 cout<<array2[i][j]<<" ";
}
cout<<endl;
}
}
搜索更多相关主题的帖子: 输出 
2007-10-19 09:37
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
不清楚,是解析成指针了吧.
对应的元素应该用array2[i]吧
你直接用array2+i是把数字I加到array2数据里去
2007-10-19 10:05
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
array是二维数组,(array+i)是个一维数组,其实就是第i行的首地址

*(*(array2+i)+j)这样才是数组的元素

二维数组相当于二维指针,要两个*才能得到元素的值

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 10:15
Standford
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-10-5
收藏
得分:0 
回复:(永夜的极光)array是二维数组,(array+i)是个...

十分感谢!!
我还是有点不懂, 既然,“(array+i)是个一维数组,其实就是第i行的首地址”那么
*(array2+i)怎么不是对应的元素,而是地址


2007-10-20 19:42
无缘今生
Rank: 2
等 级:新手上路
威 望:3
帖 子:523
专家分:7
注 册:2007-6-25
收藏
得分:0 
int 类型的数据在内存中是用几个字节存储的.

你用一个地址加上一个整数后的地址,你敢肯定它是指向下一个整型数据的吗.

时不再来!!!
2007-10-20 20:34
蓝莲之鸟
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-20
收藏
得分:0 
*(array2+i)是指针,改成*(*(arry2+i))就可以了,前者可以看作是一位数组的首地址,后者才是数据内容

2007-10-21 12:59
天心水月
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-20
收藏
得分:0 
以下是引用蓝莲之鸟在2007-10-21 12:59:33的发言:
*(array2+i)是指针,改成*(*(arry2+i))就可以了,前者可以看作是一位数组的首地址,后者才是数据内容


我们能够读懂的东西,恰是我们人性中存在的东西。
2007-10-21 13:27
q363742533
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-25
收藏
得分:0 

一维数组对应一级指针,二维数组对应二级指针 所以 *(*(array2+i)+j)才是值

2007-10-27 09:49
快速回复:[求助]二维数组的输出
数据加载中...
 
   



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

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