• main函数的参数(一)


            (以下代码全都在linux gcc上运行)

           在C语言编程中,函数非常常见。main()也是一种函数,而且C程序总是从main函数开始执行。为什么呢?

           来看《UNIX环境高级编程》中的一段话:

           内核执行C程序时,在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址—这是由连接编辑器设置的,而连接编辑器则由C编译器调用。

          看不懂的话,首先记住main()是程序执行的入口就行了。

          许多函数都是有返回值,有参数的。比如:

           int func(int a);

          那么,main函数有没有参数呢,许多时候我们都是把它当做无参数函数来使用的。

         

    #include<stdio.h>
    int main()
    {
            printf("Hello World!");
            return 0;
    }


           这是我们大多数人入手的第一个函数,这样子写是完全可以的,没有错误,可以运行。

           但是,其实main()函数更其它函数一样也都是有爹有妈(参数)的。因为它也是一个函数啊!

           main函数的原型是:

           int main(int argc,char *argv[])或者int main(int argc,char**argv)

          其中,argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。一言以避之,就是argc表示参数的个数包括执行文件名;而argv来存放参数。这样有可能不直观,让我们来看一段代码:

           

    #include<stdio.h>
    #include<unistd.h>
    #include<stdlib.h>
       
    int main(int argc,char* argv[])
    { 
           int i=0;
           for(i=0;i<argc;i++)
           {   
                printf("argv[%d]: %s
    ",i,argv[i]);
           }   
             
           exit(0);
     }                  


             输入:./hello

             输出:argv[0]: ./hello

             这就说明当在命令行只输入:./hello这一个参数时,argc为1。并且./hello存储在argv[0]中,这里就可以看出argv就相当于一个二维数组。

             当在命令行多输入几个参数时:

             输入:./hello hello1 hello2 hello3

             输出:

             argv[0]: ./hello

             argv[1]: hello1

             argv[2]: hello2

             argv[3]: hello3

             现在应该就明了了,但这只是一个初步的了解,关于它还会有更深入的应用。后面在代码中遇到再看吧。

             

     

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Java学习笔记 -StringBuffer & StringBuilder
    Java学习笔记
    java学习笔记 -数组
    关于运放采集电路如何自动切换量程电路
    仪器仪表运放的放大倍数的一些问题
    二极管、三极管和mos管使用总结
    mos管缓启动和防反接电路原理
    关于产生负电源电路
    可靠性测试之画pcb
    AD软件pcb电路板各图层的理解
  • 原文地址:https://www.cnblogs.com/TGSB/p/4824245.html
Copyright © 2020-2023  润新知