关于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 <iostream>
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 <iostream>
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;
}

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值