首页 理论教育指向二维数组元素的指针用法

指向二维数组元素的指针用法

【摘要】:所以,程序中可以用数据类型相同的一级指针变量来指向任意维数数组的元素。定义二维数组和合适的指针变量后,则可以使用指针变量指向数组中的任何一个元素。如果一个指针变量已经指向了一个数组元素,对指针变量进行指针运算就表示被它指向的那个数组元素。随机产生4行5列二维数组的元素值,找出其中的最小值。要求在查找过程中使用指针变量遍历二维数组。

前面讨论过只要是数组元素就等用于同数据类型的普通变量。所以,程序中可以用数据类型相同的一级指针变量来指向任意维数数组的元素。定义二维数组和合适的指针变量后,则可以使用指针变量指向数组中的任何一个元素。例如,下面的语句序列表示了二维数组a的元素和一级指针变量p之间的关系:

double a[5][8],*p;

p=&a[3][2];  //赋值方式,指针变量p指向数组元素a[3][2]

或者

double a[5][8],*p=&a[3][2];//初始化方式,指针变量p指向数组元素a[3][2]

一般地,对于数组a中的i行j列元素而言,使用p=&a[i][j]就表示指针变量p指向数组中的i行j列数组元素。(www.chuimin.cn)

如果一个指针变量已经指向了一个数组元素,对指针变量进行指针运算就表示被它指向的那个数组元素。例如,设一级指针变量p已经指向了二维数组元素a[3][2],则表达式*p就等价于a[3][2]。

【例8.10】 随机产生4行5列二维数组的元素值,找出其中的最小值。要求在查找过程中使用指针变量遍历二维数组。

由于二维数组在内存中的存放顺序是按行优先的顺序存储,如下程序段中才有可能采用指针沿着数组存储区移动(p++)的方式遍历整个二维数组。

在这个程序段中,通过表达式p=&a[0][1]的指针变量p指向了数组a的0行1列元素,然后在循环控制下通过执行表达式p++,使得指针变量p依次指向数组a的其他元素,通过表达式*p表示出相应的二维数组元素。程序仅输出了某次执行时的最小元素值,读者可以自行在程序中增加一个输出函数来检验结果的正确性。