数组指针和指针数组怎样理解?作为函数参数时,怎样调用?

2024年11月22日 19:55
有1个网友回答
网友(1):

数组指针的实例:int(*p)[5];  可以这样解释其定义:p是个指针,指向一个数组,数组有5个元素,每个元素是一个int型整数。在内存中,p就是一个占4字节的变量,变量的值是个地址,在内存的那个地址处,有4*5=20个连续字节被认为是一个int[5]数组。做一次p++,p的值增加20。

这种特性和二维数组是有相似之处的,比如int k[3][5],事实上,可以这样赋值: p=k。  如果要在形参里使用,可以将变量名去除,就抽象出数据类型。典型的函数声明可以这样写:void f( int(*)[5] ); 典型的实参调用可以这样写:f(k);  这里的k是int k[3][5]二维数组。