栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于C++中的二维数组

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于C++中的二维数组

关于C++中的二维数组

关于二维数组在内存中的排列

当我们声明一个数组
如:nt arr[2][2] = {{1,2},{3,4}};

我们假设该数组的起始地址为0,那么直接输出arr的地址便为0,且范围是0~7,占用8个字节。然而有趣的是arr+1的地址并非为4,而是为8。因此,想要输出行之中列的地址,需要在arr的地址上再进行操作,即 (*arr+0)+1,这便得到了数组中第一行第二列数值的地址;

输出分为以下
(1)cout << arr ;将会输出首位的地址;
(2)cout << arr [x];将会输出第x行的地址;
(3)cout << arr[x][y]; 将会输出第 x 行,第 y 列的数值
(4)cout << *(arr+0);将会输出首行首位的数值
(5)cout << *(*(arr+0)+1);将会输出第一行第二列的数值;
(6)整体输出可以用循环将数组输出

#include 
using namespace std;
int main()
{
	int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
	int i,j;
	for(i=0;i<=2;i++)
	{
		for(j=0;j<=2;j++)
		{
			cout << arr[i][j] << " " ;
		}
		cout << endl;
	}
return 0;
}

同样的,使用地址将其输出

#include 
using namespace std;
int main()
{
	int arr[3][3]={{12,22,32},{42,52,62},{72,82,92}};
	int i,j;
	for(i=0;i<=2;i++)
	{
		for(j=0;j<=2;j++)
		{
			cout << *(*(arr+i)+j) << " " ;
		}
		cout << endl;
	}
return 0;
}

新手上路,若有错误,还请大佬斧正

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号