首页 理论教育 C语言程序设计教程-行指针变量

C语言程序设计教程-行指针变量

时间:2023-10-23 理论教育 版权反馈
【摘要】:指向一维数组元素的指针变量p加1后所指向的数组元素是原来p所指元素的下一个数组元素,因此可以理解为p值的变化是以数组元素为单位的。在定义和使用指向一维数组的指针变量p时,需要注意以下几点。在定义行指针时,“”中的括号不能省略。图8-11行指针变量q与二维数组可见,*q代表一维数组的首地址,*q+j是一维数组的第j个元素地址,*是一维数组的第j个元素。用行指针实现求二维数组中最大元素的值。

C语言程序设计教程-行指针变量

指向一维数组元素的指针变量p加1后所指向的数组元素是原来p所指元素的下一个数组元素,因此可以理解为p值的变化是以数组元素为单位的。

指向一维数组的指针变量是另外一种类型的指针变量,它是指向一维数组类型数据的指针变量,即该指针变量的目标变量又是一个一维数组,所以此类指针变量的增值是以一维数组的长度为单位的。

指向由n个元素组成的一维数组的指针变量,又称为行指针,其定义的一般形式如下:

类型标识符(*变量名)[N];

其中“*”表示其后的变量名为指针类型,[N]表示指针变量所指向的一维数组中元素的个数。“类型标识符”表示一维数组元素的类型。在定义中“*变量名”作为说明部分,必须用括号标注。

在定义和使用指向一维数组的指针变量p时,需要注意以下几点。

(1)在定义行指针时,“(*变量名)”中的括号不能省略。

(2)在定义行指针时,N必须是整型常量表达式,此时定义的行指针可以指向相同类型的具有N个列元素的二维数组中的一行。

(3)p是行指针,p+i、p++或p--均表示指针移动的单位为行。

(4)p只能指向二维数组中的行,而不能指向一行中的某个元素。

例如:

inta[3][4],(*q)[4]=a;

其中,q是指向由4个元素组成的一维数组的指针变量,表达式*q是一个含有4个元素的一维数组,它指向二维数组的第0行,q+i指向二维数组的第i行,如图8-11所示。(www.xing528.com)

图8-11 行指针变量q与二维数组

可见,*q代表一维数组的首地址,*q+j是一维数组的第j个元素地址,*(*q+j)是一维数组的第j个元素。由此可推出数组元素a[i][j]的地址表示形式为*(q+i)+j,数组元素a[i][j]的表示形式为*(*(q+i)+j)。

【例8-9】用行指针实现求二维数组中最大元素的值。

例8-9 运行视频

程序运行结果如图8-12所示。

图8-12 例8-9的运行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈