-1

可能重复:
在 C 中,数组是指针还是用作指针?

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

4

3 回答 3

5

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

于 2012-10-22T13:19:06.833 回答
1

char**是指向 a 的指针的指针char

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

但是,当您将数组传递给函数时,它们会衰减为指针。

于 2012-10-22T13:20:06.530 回答
1

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

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

于 2012-10-22T13:30:34.933 回答