【发布时间】:2012-10-22 13:16:49
【问题描述】:
在 C++ 中,默认的 main 函数可以有 char* argv[] 之类的参数。它与 char** 和 char* argv[100] 有什么区别?
【问题讨论】:
标签: c++
在 C++ 中,默认的 main 函数可以有 char* argv[] 之类的参数。它与 char** 和 char* argv[100] 有什么区别?
【问题讨论】:
标签: c++
函数参数没有区别。在其他情况下,第一个声明一个指针,第二个声明一个数组。
【讨论】:
char* [100] 你有更多信息。
char** 是一个指向char 的指针。
第二个char *argv[100] 是一个指向字符的指针数组。
但是,当您将数组传递给函数时,它们衰减为指针。
【讨论】:
char*,你在心理上就是个僵尸。
char** argv:要引发与 char* argv[100] 相同的行为,您必须动态分配空间来存储 char 指针。例如:(*argv) = new char[100];
双指针是 C++ 独有的一种非常灵活的数据类型,它可以带来疯狂的速度和疯狂的错误。通常,如果您知道数组的大小,最好避免动态内存分配。
【讨论】: