main() 函数

当程序开始运行时,系统将调用函数 main,这将标记程序的入口点。 缺省情况下, main 具有存储类 extern。 每个程序都必须具有一个名为 main的函数,并且以下约束适用:
  • 程序中的任何其他函数都不能称为 main
  • main 不能定义为 inlinestatic
  • 仅限 C + + 开始main 不能从程序内部调用。仅限 C++ 结束
  • 仅限 C + + 开始 main 的地址无法使用。仅限 C++ 结束
  • 仅限 C + + 开始 main 功能不能被重载。仅限 C++ 结束
  • C++11 仅开始 main 函数不能与 说明符一起声明。 constexprC++11 结束
可以使用以下任何格式使用或不使用参数来定义函数 main :
int main (void){}
int main ( ){}
int main(int argc, char *argv[]){}
int main (int argc, char ** argv){}
虽然可以为这些参数提供任何名称,但它们通常称为 argcargv。 第一个参数 argc (自变量计数) 是一个整数,用于指示启动程序时在命令行上输入的自变量数。 第二个参数 argv (自变量向量) 是指向字符对象数组的指针数组。 数组对象是以 null 结束的字符串,表示启动程序时在命令行上输入的自变量。

数组的第一个元素 argv[0]是一个指向字符数组的指针,该数组包含从命令行运行的程序的程序名或调用名。 argv[1] 指示传递到程序的第一个自变量, argv[2] 第二个自变量,依此类推。

以下示例程序 backward 打印在命令行上输入的自变量,以首先打印最后一个自变量:
#include <stdio.h>
int main(int argc, char *argv[])
{
  while (--argc > 0)
    printf("%s ", argv[argc]);
  printf("\n"); 
}
从命令行调用此程序:
   backward string1 string2
提供以下输出:
   string2 string1

自变量 argcargv 将包含以下值 在程序开始时:

对象
argc 3
argv[0] 指向字符串 "backward" 的指针
argv[1] 指向字符串 "string1" 的指针
argv[2] 指向字符串 "string2" 的指针
argv[3] NULL