看到不同的人写出的 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;一般,我们不用最后一种定义,由于,假设我们须要查看环境变量时,有专门的命令实现这样的操作。

      假设你不确定应该选择哪一种定义的方式,那么,选择第三种方式是一个不错的选择。