首先!要搞懂char**是什么?
我们知道char*是字符指针,是一个地址,指向一个字符串。
那么char**就是指向char*的指针,也是一个地址,指向指针的指针(好烦)。
使用char**的时候,通常是用作函数参数。
为了深入理解呢,我们直接定义使用,然后配合malloc(申请内存)来展示
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int n;
scanf("%d",&n);//n为字符串个数
char **a=(char**)malloc(sizeof(char*)*n);//申请有n个字符串的内存
for(i=0;i<n;i++)
{
//指针可以用数组来表示
a[i]=(char *)malloc(sizeof(char)*5);//申请字符串的大小
scanf("%s",a[i]);
}
for(i=0;i<n;i++)
{
printf("%s\n",a[i]);
free(a[i]);//释放每个字符串的内存
}
free(a);//释放指向指针的a指针的内存
return 0;
}
这样是不是char**就很好理解了呢!
如有错误,还请大家批评指正 !!!