C++中存储二维数组,通常是perarray,即一个数组存储为一维数组。
例如:a[2][2]在内存中的维度顺序是第一个第一行
a[1][0]a[1][1]//存储第二个顺序。
假设32位系统,一个整数占用4个字节,其存储格式为:
a[0][0]
a[0][1]
a[1][0]
a[1][1]
二维数组在内存中逐行存储。
C语言中二维数组的定义是:inta[x][y]。具体理解为一个二维数组a,有x行数据,每行有y数据。
说明:当我们访问数据时,如果没有x,就不可能检索到值。但如果没有y,则可以通过地址取出x行的某个值。
当我们知道x的值时,就意味着我们可以确定这一行的首地址。因为二维数组是按照行存储的,所以第x行的数据地址关系是按升序排列的。
反证法:如果二维数组是按列存储的,那么我们就知道y值,并且可以确定第一个地址的值来执行有价值的访问。显然,由于C语言不支持这种方式,所以C语言中的二维数组是按行存储的。
扩展信息:
二维数组的输入:
inta[2][3];
for(inti=0;i<2;i++)
{
for(intj=0;j<3;j++)
{
cin>>a[i][j];
}
}
通过for循环确定x的值,然后通过for循环确定y的值。
上一篇:云计算知识结构图
下一篇:二维数组在内存中的存储方式