注册 登录
编程论坛 C++教室

main()函数

xyath 发布于 2009-11-07 15:13, 504 次点击
C++点滴:main()函数

帖子由 tiger » 2009-07-04 13:58
main()函数是C++程序的入口,任何C++程序都必须提供一个且是唯一一个main()函数。
标准C++ 的main()函数有以下2中定义方式:
代码: 全选
    int main() {
        ...
    }


代码: 全选
    int main(int argc, char *argv[]) {
        ...
    }

第二种定义的参数 char *argv[] 也可以写成 char **argv
与其他函数不同,main() 函数在函数结尾隐含了 return 0; 语句,我们可以显式的写上这个返回语句,也可以不写,都符合标准。
1 回复
#2
xyath2009-11-07 15:16
Re: C++点滴:main()函数
帖子由 tiger » 2009-07-04 14:32
关于第二种定义方式的参数:
int argc -- 记录命令行参数的个数,命令行参数的数量最小为1,及可执行文件本身的名称。
char *argv[] -- 命令行参数(数组)
如下面程序:
代码: 全选
    // hello.cpp
    #include <iostream>
    int main(int argc, char *argv[]) {
        std::cout << "命令名:" << argv[0] << std::endl;
        if (1 == argc) {
            std::cout << "Hello world" << std::endl;
            return 0;
        }
        std::cout << "Hello to " << argc - 1 << " friends: ";
        for (int i = 1; i < argc; ++i) {
            std::cout << (1 == i ? "" : ", ") << argv[i];
        }
        std::cout << '.' << std::endl;
        // return 0; //返回语句可写可不写
    }

简单编译:
代码: 全选
    g++ -ohello -O2 hello.cpp

不带命令行参数执行程序
代码: 全选
    kwarph@hopeful:~$ ./hello
    命令名:./hello
    Hello world

有命令行参数执行程序:
代码: 全选
    kwarph@hopeful:~$ ./hello tiger
    命令名:./hello
    Hello to 1 friend(s): tiger.

代码: 全选
    kwarph@hopeful:~$ ./hello tiger longdouble
    命令名:./hello
    Hello to 2 friend(s): tiger, longdouble.






1