【发布时间】:2018-12-08 10:16:59
【问题描述】:
我有两个不同版本的代码,在 C 编程语言中使用 char 数组。
第一版:
int main(int argc, char *argv[]) {
return 0;
}
第二版:
int main(int argc, char *argv) {
return 0;
}
所有代码都编译没有警告或错误,那么这些代码之间有什么区别吗?
【问题讨论】:
-
main()函数的情况,第一个正确,第二个错误。 (参见What shouldmain()return in C and C++?,它还涵盖了传入的参数以及返回类型)。区别在于指向某些字符的指针(第一种情况)和指向某些字符的指针(第二种情况)之间的区别。请注意,一些编译器会(正确地)抱怨第二种情况——这不是main()的合法签名。 -
第二个代码段错误。
-
我推荐this
mainfunction reference。并且可能是一本关于指针和数组的好书或教程。 -
第二个应该是
char **argv。见stackoverflow.com/questions/4208444/c-difference-between-and -
请仔细检查您的问题是否有“错别字”。