二维数组与指针(教程)
二维数组与指针
1.二维数组元素在内存中的存放方式
在C++中,二维数组元素值在内存中是按行的顺序存放的。若定义二维整型数组a[3][3],假设编译系统为数组a分配的内存空间从1000开始到1035为止,则数组中各元素a[0][0]~a[2][2]在内存中按行存放次序如图7.6所示。因此,与一维数组类似,可用指针变量来访问二维数组元素。
【例7.7】用指针变量输出二维数组各元素的值。
# include
void main(void)
{ int a[3][3]={ {1,2,3},{4,5,6},{7,8,9}};
int *p=&a[0][0]; //将二维数组首地址赋给指针变量p
for (int i=0;i<9;i++)
{ cout<
p++; //指针变量p加1,指向下一个元素
}
}
程序执行后输出结果为:
1 2 3 4 5 6 7 8 9
但要用上述指针变量p访问二维数组中任意指定元素a[i][j]就觉得很不方便,为此C++设计者提供另外几种访问二维数组元素的方法,为了了解访问二维数组元素的方法,必须了解三个地址概念,即:二维数组行首地址、行地址、元素地址,现介绍如下。
2.二