指针的本质:存放地址的盒子。
多级指针:也是一个盒子。只是这个盒子里面存放的还是盒子。它是存放地址的地址空间,也可以理解成一个地址表。
多级指针(二维指针):把一些毫不相关的东西,组成线性关系(连续的空间,每个里面存放的都是地址)。它更多描述的是内存与内存的线性关系,而不是要描述内存的内容是什么。
例1:
// 001.c
#include <stdio.h>
int main(int argc, char **argv) // argc:传递参数的个数
{
int i;
for(i = 0; i < argc; i++)
{
printf("argv[%d] is %s\n", i, argv[i]);
}
return 0;
}
例2:
// 002.c
#include <stdio.h>
int main(int argc, char **argv)
{
int i = 0;
while(argv[i] != NULL) // 二维指针常用的模板和框架。 NULL为结束的标志
{
printf("argv is %s\n", argv[i]); // 里面具体的实现
i++;
}
return 0;
}