看到不同的人写出的 C 或者 C++ 程序时,可能会出现不一样的 main 函数的定义,以下的几种定义方式都是对的:
int main(void) int main(int argc) int main(int argc, /*const*/ char** argv) int main(int argc, /*const*/ char** argv, /*const*/ char** enviorn)
这几种方式中。第三种方式是最经常使用的。
那么,这些參数代表着什么呢?以下,我就以最后一个定义的形式解释这几个參数的定义:
#include <stdio.h> /* @description: 描写叙述 main 函数的參数以及各个參数的作用 @parameters: argc:执行程序时,输入參数的个数。假设仅仅是输入程序名,那么。argc = 1 argv:这是一个字符串指针。指向每个參数 environ:当前系统的环境变量 */ int main(int argc, const char** argv, const char** environ) { int i = 0; printf("argc : %d\n", argc); for (i = 0; i != argc; ++i) { printf("argv[%d] : %s\n", i, argv[i]); } for (i = 0; environ[i] != '\0'; ++i) { printf("environ[%d] : %s\n", i, environ[i]); } return 0; }
好吧,编译执行下吧,这里。我为了突出说明 argc 的作用,在參数上加了几个没实用的词,执行截图例如以下所看到的:
既然以上几种定义的形式都对,那么,我们应该选择用什么方式去定义 main 函数呢?这个,没有准确的答案。就是当你须要什么时,你就那样定义。假设你不须要參数,那么。你全然能够把參数列表设置成 void;一般,我们不用最后一种定义,由于,假设我们须要查看环境变量时,有专门的命令实现这样的操作。
假设你不确定应该选择哪一种定义的方式,那么,选择第三种方式是一个不错的选择。