C/C++ 二维数组与指针

C/C++ 中的二维数组和指针解析
本文详细介绍了C/C++中二维数组的内存存放方式,以及如何通过指针访问二维数组的元素。内容包括二维数组的行首地址、行地址和元素地址的概念,并通过实例展示了各种地址表示方法及其在程序中的应用。

1.二维数组元素在内存中的存放方式
  在C++中,二维数组元素值在内存中是按行的顺序存放的。

 用指针变量输出二维数组各元素的值。

#include <iostream.h>
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 << '\t'; //输出二维数组中第i个元素值
    p++; //指针变量p1,指向下一个元素
  }
}

  
程序执行后输出结果为:
  1 2 3 4 5 6 7 8 9


 但要用上述指针变量p访问二维数组中任意指定元素a[i][j]就觉得很不方便,为此C++设计者提供另外几种访问二维数组元素的方法。
为了了解访问二维数组元素的方法,必须了解三个地址概念,即:二维数组行首地址、行地址、元素地址。
  

2.二维数组行首地址
二维数组各元素按行排列可写成矩阵形式,若将第i行中的元素a[i][0]、a[i][1]、a[i][2]组成一维数组a[i] (i=0,1,2),则二维数组a[3][3]可看成是由三个一维数组元素a[0]、a[1]、a[2]组成。
即:a[3][3]=(a[0],a[1],a[2]),其中:a[0]、a[1]、a[2]是分别表示二维数组a[3][3]的第0、1、2行元素。

即:a[0]=(a[0][0],a[0][1],a[0][2])

   a[1]=(a[1][0],a[1][1],a[1][2])
   a[2]=(a[2][0],a[2][1],a[2][2])

  因为数组名可用来表示数组的首地址,所以一维数组名a[i]可表示一维数组 (a[i][0],a[i][1],a[i][2])的首地址&a[i][0],即可表示第i行元素的首地址。
因此,二维数组a中第i行首地址(即第i行第0列元素地址)可用a[i]表示。
  一维数组的第i个元素地址可表示为:数组名+i。
因此一维数组a[i]中第j个元素a[i][j]地址可表示为:a[i]+j 。
即:二维数组a中第i行第j列元素a[i][j]的地址可用a[i]+j来表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值