指针数组作为函数参数的传递
想了解指针数组作为函数参数传递,就必须清楚指针数组的概念,指针数组是一个一维数组,存放的是(int、char、short、long、double、float)+*的内容,也即数组中的每个元素存放的是一个地址。
了解了指针数组的本质后,想要将指针数组作为函数的参数进行传递就类似于一位普通数组的传递方法,将数组名作为数组的首元素地址进行实参传递,在形参接实参的时候要注意指针数组的类型是二级指针,所以要用二级指针,要想在函数内访问指针数组的成员,用%s方式 ,后跟arr[i]的方式,arr[i]中存放的就是每个字符串的地址。
代码如下:
#include<stdio.h>
void print_arr(char **buf, int n)
{
int i=0;
for(i=0;i<n;i++)
printf("%s\n",buf[i]);
}
int main(int argc, char *argv[])
{
char *buf[3]={“hehe”,“haha”,“lele”,NULL};
int n=sizeof(buf)/sizeof(buf[0]);
print_arr(buf,n);
return 0;
}