zoukankan      html  css  js  c++  java
  • C/C++基础:main函数的参数argc和argv

    转载:

    https://blog.csdn.net/Eastmount/article/details/20413773

    一.main()函数参数

    通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C99中main()函数主要形式为:
    (1).int main(void)
    (2).int main(int argc,char *argv[]) = int main(int argc,char **argv).
    其参数argc和argv用于运行时,把命令行参数传入主程序.其中ARG是指arguments,即参数.具体含义如下:
    (参照Arguments to main和C++ Primer7.2.6节)
    (1).int argc:英文名为arguments count(参数计数)
    count of cmd line args,运行程序传送给main函数的命令行参数总个数,包括可执行程序名,其中当argc=1时表示只有一个程序名称,此时存储在argv[0]中.
    (2).char **argv:英文名为arguments value/vector(参数值)
    pointer to table of cmd line args,字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个参数,空格分隔参数,其长度为argc.数组下标从0开始,argv[argc]=NULL.
    argv[0] 指向程序运行时的全路径名
    argv[1] 指向程序在DOS命令中执行程序名后的第一个字符串
    argv[2] 指向执行程序名后的第二个字符串
    argv[argc] 为NULL.

    例如:

    #include <stdio.h>
    #include <stdlib.h>
    
    // 声明
    double getArea(r, PI);
    
    int main(int argc,char *args[]){
        double r = 0;
        double Area = 0;
        double PI = atof(args[1]);
        printf("当前PI值为:%f
    ", PI);
        printf("输入半径R:");
        scanf("%lf", &r);
        Area = getArea(r, PI);
        printf("面积为:%f
    ", Area);
        return 0;
    }
    
    // 计算面积
    double getArea(double r, double PI){
        double area = 0;
        area = PI * r * r;
        return area;
    }

    二.源代码中的argc与argv

    由于C程序必须有main()函数为入口,而且它不能被其他函数调用(可以调用自身),因此不能再程序内部取得实际值.那么在何处把实参赋值给main函数的形参呢?这就需要调用"运行"或"DOS提示符",在调用可执行程序exe时,编译器会帮助我们将输入参数的信息放入main函数的参数列表中传参.

  • 相关阅读:
    【洛谷 2212】浇地Watering the Fields
    【洛谷 2504】聪明的猴子
    【洛谷 1991】无线通讯网
    【洛谷 3366】最小生成树_Prim
    Spark RDD中两种算子之一:常见Action算子小结
    Spark学习之路Spark之RDD
    Linux系统之pssh系列工具的使用
    MapReduce shuffle过程详解
    批量计算和流式计算
    关于IDEA破解后无法启动问题
  • 原文地址:https://www.cnblogs.com/flypig666/p/11805430.html
Copyright © 2011-2022 走看看