char **argv和char *argv[]可以认为基本一样(当然这两者是有些区别的,但大部分情况下可认为是一样的).
我对argv的理解是:argv是一个指向字符串指针的指针。
所以,假设:
char *p = "aaaa";
char **argv = p;
则:
argv = &p(argv存储的值就是p的地址)
*argv = p(argv取值就是p所指向的地址,即&“aaa“,此时,可认为*argv为指针p)
上面等同于:(argv[0]=p)
**argv="aaa"(相当与*p)
现在假设由一个char *p1 = "bbb",若要赋值给p,可这样赋值:
*argv = *p1 (因为上面说过,*argv = p = *p1,即p="bbb");
本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1622311
原文地址:http://whatever957.blog.51cto.com/6835003/1622311