main函数

摘要:为何必须包含main函数、main函数的返回值为啥是0

一、每个C++程序必须包含main函数

  • 操作系统通过调用 main 来运行C++程序

 

二、main函数的返回值

1. 举个最简单的main函数作为例子

/*  此函数只返回给操作系统一个值  */

int main()
{
	return 0;
} 

2. main函数的返回值返回给谁?有何作用?

  • return语句结束函数的执行,并返回给调用者一个值。
  • 所以,main函数的return返回值给操作系统。
  • main函数的返回值可以看做是状态指示器,返回0表明执行成功,非0的返回值的含义由系统定义,通常用来指出错误类型。
  • 为了使返回值与机器无关,cstdlib头文件定义了两个预处理变量(EXIT_SUCCESS、EXIT_FAILURE)来分别表示成功与失败。

3. 补充

  我们知道如果一个函数的返回类型不是void,那么它必须返回一个值。但是这个规定对于main函数是个例外,是的,main函数确实要返回给调用者一个值,但我们可以省略return语句,此时,编译器会隐式地插入一条返回0的return语句。

 

三、main:处理命令行选项

1. 我们可以给main函数传递实参

  • 目的:通过设置一组选项来确定函数所要执行的操作。
  • 示例:若main函数位于可执行文件prog内,我们可以向程序传递下面的选项:prog -d -o ofile data0
  • 形式:int main(int argc, char *argv[])
  • 解读:第一个形参argc表示数组中字符串的数量;第二个形参argv是一个数组,它的元素是指向C风格字符串的指针
  • 当实参传给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串,接下来的元素依次传递命令行提供的实参。最后一个指针之后的元素值保证为0。

2. 题目

编写一个程序,使其接受上面所示的选项;输出传递给main函数的实参的内容。

#include <iostream>
#include <vector>
#include <cctype>
#include <string>

using std::cin;
using std::cout;    
using std::endl;
using std::vector;
using std::string;
 
  
int main(int argc, char *argv[])	//形参argv是一个数组,它的元素是指向C风格字符串的指针  
{  
    for (int i = 1; i != argc; ++i) {  
        cout << argv[i] << endl;  
    }  
    return 0;  
}  

 

  

 

posted @ 2017-10-02 09:29  GGBeng  阅读(858)  评论(0编辑  收藏  举报