char ** x和char * x []之间的区别是什么

时间:2012-10-22 13:16:49

标签: c++

  

可能重复:
  In C, are arrays pointers or used as pointers?

在C ++中,默认的main函数可以包含char * argv []之类的参数。它与char **和char * argv [100]的区别是什么?

3 个答案:

答案 0 :(得分:4)

功能参数没有区别。在其他情况下,第一个声明一个指针,第二个声明一个数组。

答案 1 :(得分:1)

char**是指向char指针的指针。

第二个char *argv[100]是一个指向char的指针数组。

但是当你将数组传递给函数时,它们衰减到指针。

答案 2 :(得分:1)

char** argv:要引出与char * argv [100]相同的行为,必须动态分配空间来存储char指针。例如:(*argv) = new char[100];

双指针是C ++独有的一种非常灵活的数据类型,它可以提供疯狂的速度和疯狂的错误。通常,如果您知道阵列的大小,最好避免动态内存分配。