对二维数组行指针和列指针理解

  • 格式:doc
  • 大小:30.00 KB
  • 文档页数:1

下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二维数组的行指针和列指针是任何c 语言初学者头疼的事情,为了方便理解,特总结出四点规律:

1、 对于任意二维数组int a[ROW][COLUMN]来说,a+i 表示行指针,而a[i]标识列指针(其

中i 表示某个整形值),行指针转化为列指针是通过在行指针前面加“*”运算符做到,而列指针转化为行指针是通过“&”来做到。如Fig.1所示:

Fig.1 行指针和列指针转化图

2、 在二维数组int a[ROW][COLUMN]中,可以认为划分为三层,最高层为行指针,中间层

为列指针,而最底层为元素。由高层到底层可以通过”*”运算符来做到,而由底层到高层可以通过”&”运算符来做到。如Fig.2所示:

Fig.2 二维数组中层次图示

3、 对于二维数组int a[ROW][COLUMN]来说,行指针的本质就是一个指向包含COLUMN

个元素一维数组的指针 也就是 int (*p)[COLUMN],而列指针的本质就是一个指向元素的指针,也就是 int *p;

4、 对于一维数组来说,总结出的一个通用公式是 a[x]=*(a+x)=*(x+a)=x[a],这也就是我们

既可以用a[3]也可以用3[a]的原因;而对于二维数组来说,总结出的通用公式是 a[i][j]=*(*(a+i)+j)

a[i] *(a+i) 行指针(a+i )

* &