• C++中main函数的返回值一定要是int


    因为大学上课时候,经常是在主函数中做处理,直接用cout语句输出到显示设备,所以一直在用void main().

    直到后面具体编程的时候,才发现void main()这种用法是按 C89(C语言的早期标准)规定的,main() 是可以接受void返回值的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language(《C 程序设计语言》)用的就是void main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
    int main( void )
    int main( int argc, char *argv[] )
    当然,我们也可以做一点小小的改动。例如:char *argv[] 可以写成 char **argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。

    C99和C++98规定编译器要自动在生成的目标文件中加入”return 0;”, 表示程序正常退出.写程序好的习惯是自己在main函数的最后加上return语句,因为并不是所有的编译器都支持这一特性. 所以如果想让自己的程序写出来移植性好,最好加上return语句。

    2、那么再来说说带参数的main函数,这两个参数是干嘛用的

    如果不用命令行获取参数的话,就不用这种格式了。

    关于main(int argc, char *argv[])

            argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要带参数,就是这两个类型的参数;否则main函数就没有参数。

            变量名称argc和argv是常规的名称,当然也可以换成其他名称。那么,实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个exe文件,执行该exe文件时,可以直接执行;也可以在命令行下带参数执行,命令行执行的形式为:可执行文件名称 参数1 参数2 ... ... 参数n。可执行文件名称和参数、参数之间均使用空格隔开。

    如果按照这种方法执行,命令行字符串将作为实际参数传递给main函数。具体为:
    (1) 可执行文件名称和所有参数的个数之和传递给argc;
    (2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1],... ...依次类推。

    例如,现在运行命令行(test是编译后的exe文件名称):
    C:TC est how are you
    那么test工程的main函数参数argc=4;
    argv[0]将保存字符串"C:TC est"的首地址;
    argv[1]将保存字符串"how"的首地址;
    argv[2]将保存字符串"are"的首地址;
    argv[3]将保存字符串"you"的首地址;
    下面的例子打印所有的argv参数:
    main(int argc, char *argv[])
    {
    int i;
    printf(" Total %d arguments",argc);
    for(i=0;i<argc;i++)
    {
    printf(" Argument %d = %s ",i+1, argv);
    }
    }
    如果编译后的exe文件名称为test,在DOS下运行C:TC est how are you,结果输出:
    Total 4 arguments
    Argument 1 = C:TC est.exe
    Argument 2 = how
    Argument 3 = are
    Argument 4 = you

    部分转自https://www.cnblogs.com/findumars/p/6220233.html

  • 相关阅读:
    常用模板
    pascal 的字符串操作
    war2 洛谷模拟赛day2 t3 状压
    状压搜索 洛谷T47092 作业
    Milking Order
    洛谷九月月赛T1 思考
    C数列下标 牛客OI赛制测试赛2
    钓鱼 洛谷p1717
    机房人民大团结(DP)
    Spark的Straggler深入学习(2):思考Block和Partition的划分问题——以论文为参考
  • 原文地址:https://www.cnblogs.com/mini-coconut/p/8552166.html
Copyright © 2020-2023  润新知