用内存地址去理解吧,一级指针是指向定义类型的内存地址,二级指针就是指向定义类型的内存地址所指向的新的内存地址。我举一个例子。
#include <stdio.h>
void main()
{char *day[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
char **p;
int n;
printf("请输入日期:\n");
scanf("%d",&n);
printf("对应英语日期:%s\n",*(p n-1));/* *(p n-1)还是指针,指向的n-1位元素的首地址 */}
这就是二级指针的用法,定义一个指针数组*day[]里面包含7个字符串,如果你想输出字符串,你就需要一个二级指针,因为一级指针只能寻址到字符串所在的位置,如:n=3,*p则能找到星期三所在的位置而已,并不能将其输出,因为没有其首地址,而**p则完成二级寻址,找到了星期三,也找到了它的首地址,所以能输出(字符串输出指针移动是系统自动移动的)
参考资料:如果您的回答是从其他地方引用,请表明出处