zoukankan      html  css  js  c++  java
  • 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

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

             

     

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

  • 相关阅读:
    Android Hal 分析
    Android JNI 使用的数据结构JNINativeMethod详解
    MTK GPIO 一些理解
    DEVICE_ATTR
    DEVICE_ATTR
    内核驱动中常见的miscdevice、platform_device、platform_driver
    DEVICE_ATTR实例分析
    虚拟机安装Ubuntu14.04打开FireFox提示Server not found
    Android编译系统中的Kconfig,Makefile,.config编译系统浅析
    几款在线脑图制作工具
  • 原文地址:https://www.cnblogs.com/TGSB/p/4824245.html
Copyright © 2011-2022 走看看