精华内容
下载资源
问答
  • C语言中main函数参数使用

    千次阅读 2018-09-26 10:26:41
    在C99标准定义main函数两种正确的写法 int main(void); int main(int argc, char* argv[]); 常见的不标准写法 void main() main() 这里主要说明带参数main函数如何使用 int main(int argc, char* argv[]) { ...

    在C99标准中定义main函数两种正确的写法

    int main(void);
    int main(int argc, char* argv[]);
    

    常见的不标准写法

    void main()
    main()
    

    这里主要说明带参数的main函数如何使用

    int main(int argc, char* argv[])
    {
    	int i;
    	for (i=0; i<argc; i++)
    		printf("%d: %s\r\n", i+1, argv[i]);
    	return 0;
    }
    

    参数介绍
    argc : main函数参数个数,当参数为void的时,argc=1,默认参数为可执行文件名
    argv : 指针数组,分别指向个参数字符串首地址,其中argv[0]指向默认参数

    代码输出结果
    没有参数默认输出./hello
    有参数按照参数顺序输出参数
    在这里插入图片描述

    展开全文
  • C/C++语言main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的...

    方法1.

    C/C++语言中的main函数,经常带有参数argc,argv,如下:

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

    这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到 hello.exe 文件所在目录) 运行命令为:

    hello.exe Shiqi Yu
    

    那么,argc的值是 3,argv[0]是"hello.exe",argv[1]是"Shiqi",argv[2]是"Yu"。 

    下面的程序演示argc和argv的使用:

    #include <stdio.h>
    
    int main(int argc, char ** argv)
    {
        int i;
        for (i=0; i < argc; i++)
            printf("Argument %d is %s./n", i, argv[i]);
    
        return 0;
    }
    

    假如上述代码编译为hello.exe,那么运行

    hello.exe a b c d e
    

    将得到

    Argument 0 is hello.exe.
    Argument 1 is a.
    Argument 2 is b.
    Argument 3 is c.
    Argument 4 is d.
    Argument 5 is e.
    

    运行

    hello.exe lena.jpg
    

    将得到

    Argument 0 is hello.exe.
    Argument 1 is lena.jpg.
    

    方法2. 项目——属性——配置属性——调试——命令参数,设置命令参数就可以传入
    展开全文
  • 既然main函数也是被调用的,那么它就一定可以传参,那么它的参数列表到底是什么样子呢? 我们先来看一小段代码: #include&lt;stdio.h&gt; int main(int argc,char *argv[],char *envp[]) { int i = 0...

    前几天我们已经聊过了函数的调用过程,其中我们提到了,main函数也是被其他函数调用的。既然main函数也是被调用的,那么它就一定可以传参,那么它的参数列表到底是什么样子呢?
    我们先来看一小段代码:

    #include<stdio.h>
    
    int main(int argc,char *argv[],char *envp[])
    {
        int i = 0;
        for(;i<argc;i++)
        {
            printf("%d -> %s\n",i,argv[i]);
        }
        printf("%d\n",argc);
        return 0;
    }

    它的运行结果是这个样子的:
    命令行参数

    因为命令行参数在Linux系统下的应用非常广泛,所以我这里采用的编译环境是在Linux操作系统下的gcc编译器,从代码和运行结果我们可以看出argc其实是代表了参数个数,argv[i]是指向了第i个字符串,在这里我们没有对envp做过多的演示,因为envp这个参数是对环境变量的一些配置,我们平时在编写程序的时候,用到的比较少,如果有兴趣,推荐大家看看《程序员的自我修养》这本书,其中对程序的编译、链接和装载有很深刻的讲解。

    其中argv[]数组中存着一个个指针,它们在内存中的存储方式如下:
    这里写图片描述

    我们已经知道了argv中存着一个个是字符指针,它指向一个个的字符串,那么这样做有什么好处呢?它能给我们的程序带来什么优势呢?

    这样写,可以使程序拥有更多的选项,我们可以给程序中添加多个功能,然后通过命令行参数来选择我们具体要使用哪一个功能。

    比如下面这段代码,就可以通过不同的选项来实现加减乘除这个简单的计算功能。

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    void Add(int a,int b)
    {
            printf("%d\n",a+b);
    }
    
    void Mul(int a,int b)
    {
            printf("%d\n",a*b);
    }
    
    void Sub(int a,int b)
    {
            printf("%d\n",a-b);
    }
    
    void Div(int a,int b)
    {
            printf("%d\n",a/b);
    }
    
    int main(int argc,char *argv[],char *envp[])
    {
        int a = atoi(argv[2]);
        int b = atoi(atgv[3]);
        if(strcmp("-a",argv[1]) == 0)
        {
            Add(a,b);
        }
        else if(strcmp("-s",argv[1]) == 0)
        {
            Sub(a,b)
        }
        else if(strcmp("-m",argv[1]) == 0)
        {
            Mul(a,b)
        }
        else if(strcmp("-d",argv[1]) == 0)
        {
            Div(a,b)
        }
        return 0;
    }
    展开全文
  • C语言main函数参数

    千次阅读 多人点赞 2019-08-04 07:56:56
    在我们之前编写的C程序main函数是没有参数的,但是在实际开发main函数一般都需要参数,没有参数的情况极少。 main函数参数是从命令提示符下执行程序的时候传入,例如ls 命令。 在以上示例ls命令...

     

           在我们之前编写的C程序中,main函数是没有参数的,但是在实际开发中,main函数一般都需要参数,没有参数的情况极少。

           main函数的参数是从命令提示符下执行程序的时候传入,例如ls 命令。

          

           在以上示例中ls命令有两个参数,-l和book1*。

    main函数的参数

           main函数有三个参数,argc、argv和envp表示。

           int argc,用于存放命令行参数的个数。

           char *argv[],是个字符串的数组,每个元素都是一个字符指针,指向一个字符串,即命令行中的每一个参数。

           char *envp[],也是一个字符串的数组,这个数组的每一个元素是指向一个环境变量的字符指针。

           我们把envp放一下,先讲argc和argv。

           示例(book101.c)

          

           运行结果

          

           注意几个事项:

           1)argc的值是参数个数加1,因为程序名称是程序的第一个参数,即argv[0],在上面的示例中,argv[0]是./book101。

           2)main函数的参数,不管是书写的整数还是浮点数,全部被认为是字符串。

           3)参数的命名argc和argv是程序员的约定,你也可以用argd或args,但是不建议这么做。

    C程序的规范写法

           先假设程序执行都是有参数的,也就是说main函数都有参数,那么使用者怎么知道程序的参数个数和含义,记住它?看使用手册?不是,好的程序员会在程序中说明。我们先来看一个例子。

           示例(book103.c)

          

           运行程序的时候,如果参数个数相符,运行结果如下:

          

           如果参数个数不符,运行结果如下:

          

           从以上的例子可以看出,如果执行程序的时候参数与设计不符,显示程序的使用说明,说明文字应该包括程序的功能和全部参数的解释,还可以包括作者、联系方式等更详细的信息。

           程序的使用说明文字非常重要,有几个原因:1)程序的使用者不一定会写程序,也没必要去查使用手册等资料;2)程序的使用者就算会写程序,也没必要在使用的时候去看源代码,并且,你也不一定想让他看到源代码;3)如果程序的使用者是你自己,时间一长,你也会忘记程序的参数。

           当然,这些只是有经验程序员的约定,不是C语言的规定。

    envp参数

           envp存放了当前程序运行环境的参数。

           示例(book105.c)

          

           运行结果

          

           在实际开发中,envp参数的应用很少,各位了解一下就行了。

     

    版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

    来源:C语言技术网(www.freecplus.net

    作者:码农有道

    如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

    如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

    展开全文
  • C语言中main函数可以在什么位置

    万次阅读 2021-05-21 05:29:15
    C语言中main函数可以在任意位置。每一个C语言程序有且只有一个主函数(main()),且程序必须从main()函数开始,它是程序开始时调用的第一个函数。函数定义形式:【int main(void){}】。C语言规定,在一个C程序,main...
  • C语言main函数参数、返回值

    千次阅读 2018-08-21 16:16:36
    C语言main函数返回值:  main函数的返回值,用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其他数字的含义则由系统决定,通常,返回非零代表程序异常退出。 C语言main函数写法  很多人...
  • C语言main函数参数详解

    千次阅读 2020-12-10 16:27:29
    main函数参数 一共有三个: 1.int argc 整型变量 2.char *argv[] 字符指针的数组,通俗一点就是字符串数组,每个元素都是字符串 3.char *envp[] 字符串数组 这三个东西再怎么神秘,也只是函数参数,只不过是main函数...
  • C语言中main函数参数详解

    千次阅读 2014-09-17 09:33:55
    C语言规定main函数参数只能有两个,习惯上这两个参数写为argc和argv。所以C99标准规定只有以下两种定义方式是正确的:  int main(void) //无参形式  int main(int argc, char *argv[]) //有参形式
  • main函数C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是:int main(int argc, char *argv[]);其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。当内核执行C程序时...
  • main函数,又称主函数,是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种...
  • c语言main函数参数问题

    千次阅读 2020-02-11 14:18:47
    C语言规定main函数参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针...
  • 一、C语言的主函数带参 想必我们都知道函数是带有从参数的。但是似乎,很少考虑过主函数(main)带参数
  • linux下C语言main函数参数解析

    千次阅读 2016-06-16 10:05:53
    1. linux下常见的main函数有两种形式: int main(int argc, char **argv) int main(int argc, char * argv[]) 2. 参数介绍 第一个参数 argc:命令行所有参数的个数(当然包括我们的程序名) 第二个参数 argv...
  • C语言main函数参数解析

    千次阅读 2018-08-02 14:39:51
    每个C程序都必须有一个main函数main函数又称为主函数,是执行程序的起点,它被称之为函数,是否会像平时使用函数时需要自己的参数呢? 答案是肯定的,那么他都有那些参数呢? main函数的在vs2017环境下调试,可以...
  • C语言中main函数参数

    万次阅读 多人点赞 2009-02-18 14:39:00
    C语言规定main函数参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针...
  • 深度剖析c语言main函数---main函数的参数传递

    千次阅读 多人点赞 2018-07-10 00:20:38
    在上文中,我们主要讲了c语言main函数的返回值问题,本文主要将main函数的参数传递。 main函数传参  首先说明的是,可能有些人认为main函数是不可传入参数的,但是实际上这是错误的。main函数可以从命令行获取...
  • C语言C语言中main函数问题

    千次阅读 多人点赞 2016-04-12 19:44:42
    前言 C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的。...int main( void ) /* 无参数形式 */ {  ...  return 0; } int main( int argc, char
  • C语言参数main函数的编译运行

    千次阅读 2019-05-27 10:39:18
    这里主要介绍的是C99标准下的C语言main函数形式。C语言,main函数可以带参数也可以不带参数。 不带参数的main函数格式为: main() //它实际上是 main(void)的简写 C语言如果miain函数需要带参数,带参数的...
  • C语言main函数传参

    2021-01-25 16:07:49
    main 函数作为应用程序的主要入口,在头文件 stdio.h main 函数传递参数时需要完整定义为 int main(int argc, char **argv) 其中,参数 argc 表示参数的个数,参数 **argv 存储输入字符 的数组。argv[0] 表示...
  • c语言中主函数main()的参数作用

    千次阅读 2018-05-22 10:22:38
    1.例如源文件:main.c#include &lt;stdio.h&gt; int main(int argc,char *argv[]){ int i; printf("argc = %d\n", argc); for(i = 0;i &lt; argc;i++){ printf("argv[%d]= %s\n&...
  • C语言函数作为函数参数

    万次阅读 多人点赞 2019-09-13 11:35:15
    c,c++是可以向Python那样将函数作为函数参数的,具体实现方法如下
  • C语言main函数的命令行传参

    千次阅读 2019-05-09 19:38:55
    main 函数中有两个参数,分别是 argc 和 argv。但是在 C 语言中规定,main 函数是不能被别的函数调用的,那究竟是谁传递了参数main 函数呢? 答案是:命令行 当我们在命令执行程序时,其实就是在给main 函数...
  • 关于c语言调用main函数自身,一点

    千次阅读 2019-03-19 14:47:26
    #include&amp;...int main(int i = 0){ int a,b; while(i != 5){ printf(“你好 &quot;); i++; main(i); } return 0; } 一共输出十五次,是5+4+3+2+1=15次的结果。 ...
  • C语言main函数的写法

    万次阅读 多人点赞 2018-01-03 20:02:29
    main函数是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面...
  • C语言main函数有几种写法?

    千次阅读 2021-05-20 03:46:33
    main函数,又称主函数,是程序执行的起点,我们平时写的main函数是什么样呢?1,是这样?main(){}2,还是这样?void main(){}3,还是这样?int main(void){}4,还是这样?int main(){}5,还是这样?int main(int ...
  • C语言--main函数的两个参数argc和argv

    千次阅读 2019-01-07 13:37:05
    C语言规定main函数参数只能有两个,习惯上这两个参数写为argc和argv。 第一个形参:argc(arguments count参数数)必须是整型变量 第二个形参:argv(arguments value/vector参数值)必须是指向字符串的指针数组。 ...
  • main函数不是必须放在其他函数之前,也就是说可以放在其他函数的上面,下面,都可以。编译器编译时,是逐行编译的。但是它是先找到主函数,主函数编译完也表明这个程序已经编译完了。如果主函数放在其他函数之前,...
  • main函数C语言中是怎么定义的?有什么作用?更新时间:2019-10-24 13:55最满意答案额,main不是程序的最开始啦。拿用glibc的程序来说,C语言执行的过程应该是 _start -> _libc_start_main -> main -> ...
  • C语言 数组做函数参数

    万次阅读 2018-04-25 00:20:51
    看下面代码:int main() { int a[5]={3,6,4,2,5}; char *ptrChar="hello world";//ptrChar是char类型的指针,指向内存空间 int *ptrInt=a;//ptrInt是指向int类型的指针 printf("sizeof(char):%d\...
  • C语言main函数详解

    千次阅读 2020-02-20 19:24:54
    int 指明了main()函数的返回类型,函数名后面的圆括号一般包含传递给函数的信息。对于void main(),有些编译器允许这种形式,但是还没有任何标准考虑接受它。 二、main()函数的返回值 从前面我们知道 main() 函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,728
精华内容 173,091
关键字:

c语言中main函数的参数

c语言 订阅