C 语言中 pointers to pointers 数据结构的使用
潘
2016 年 5 月
上面是源程序。
考察目的
1、考察 C 语言的 main 函数的参数的特性。
2、考察 C 语言的二级指针的使用。(pointers arrays;pointers to pointers)
我们知道一般的 main 中的函数原型如下:
int main(int argc, char *argv[])
{
//main code goes here
}
同样,和下面是等效的
int main(int argc, char **argv)
{
//main code goes here
}
其中,argv 这个变量是很难让 C 语言的初学者了解的。我们可以认为它是一个指针,是一个
二级指针,这个指针是 char 型的指针。
下面就是 gdb 的强大之处了,我们通过 gdb 中的 p 命令。
p sizeof(argv)
结果是 4
p sizeof(*argv)
结果是 4
p sizeof(**argv)
我觉得从上面的就可以看出,这个 argv 的奇特之处了。为什么 sizeof(argv) = 4;sizeof(*argv)