精华内容
下载资源
问答
  • C语言指针——main函数参数详解
    千次阅读
    2018-05-22 20:58:26

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

    int argc,程序名称;

    char* argv[],指向输入的程序路径及名称;

    char**env, 为环境变量.

    #define  _CRT_SECURE_NO_WARNINGS //vs2013
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    
    int main(int argc, char* argv[], char**env)
    {
        int i = 0;
        printf("******************* Begin argv *******************\n");
        printf("argc: %d\n",argc);  //程序名称; =1 只有一个 
    
        for (i = 0; i < argc; i++)
        {
            printf("%s\n", argv[i]); //指向输入的程序路径及名称
    
        }
    
        printf("******************* End argv *******************\n");
    
    
        printf("\n");
    
        printf("\n");
    
    
        printf("******************* Begin env *******************\n");
    
        for (i = 0; env[i] != NULL; i++)  
        {
            printf("%s\n", env[i]); //为环境变量
        }
    
        printf("******************* End env*******************\n");
    
    
        printf("\n");
        system("pause");
        return 0;
    }

     

    更多相关内容
  • C语言main函数参数详解

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

    main函数参数

    一共有三个:
    1.int argc 整型变量
    2.char *argv[] 字符指针的数组,通俗一点就是字符串数组,每个元素都是字符串
    3.char *envp[] 字符串数组
    这三个东西再怎么神秘,也只是函数参数,只不过是main函数的参数罢了!

     

    一、int argc参数

    用于存放命令行参数的个数

    二、char *argv[]参数

    每个元素都是一个字符串,表示命令行中的每一个参数。
     

    关于int argc和char *argv[]参数,我用以下代码说明:

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

    编译运行的结果:
    参数只有一个,就是当前的exe文件
    在这里插入图片描述
    上文提及,既然这两个参数和命令行有关,那么我们用命令行运行一下:
    运行时顺便加上3个参数:zhangsan、lisi、wangwu,再加上原来的exe文件参数,这样总共就有4个参数。
    在这里插入图片描述

     

    三、char *envp[]参数

    这是一个存放环境变量的数组。
    运行以下代码:

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

    部分结果:
    在这里插入图片描述

    大家如果学习过别的语言,可能会涉及配置环境变量。如何找到环境变量的位置呢?
    对于win10系统:右击“此电脑”找到属性->再找到高级系统设置->环境变量
    在这里插入图片描述
    将运行结果和找到的环境变量对比一下,就会得到验证,这个参数确实是存放环境变量的数组。

    通常这三个参数在编程时不会使用,所以可以去掉。这样main函数就成了无参函数。

     

    展开全文
  • main函数参数规范

    千次阅读 2020-12-03 13:45:26
    main函数参数规范 给main函数传递参数,非常容易,而且每个人都有自己的编写方式; 这里介绍一下标准C库的getopt规范,该规范定义了两类参数:短参数和长参数 #include <unistd.h> #include <getopt.h> ...

    main函数参数规范

    给main函数传递参数,非常容易,而且每个人都有自己的编写方式;
    这里介绍一下标准C库的getopt规范,该规范定义了两类参数:短参数和长参数

    #include <unistd.h>
    #include <getopt.h>
    /*帮助*/
    static void usage(FILE *fp, int argc, char *argv[]) {
    	fprintf(fp, "Usage: %s[optionts]\n"
    		"Options:\n"
    		"-d | --device name 	Video device name[/dev/video]\n"
    		"-h | --help 		Print this message\n"
    		"", argv[0]);
    }
    /*短参数*/
    static const char short_options[] = "d:h";
    /*长参数*/
    static const struct option long_options[] = {
    	{"device", required_argument, NULL, 'd'},
    	{"help", no_argument, NULL, 'h'},
    	{0,0,0,0},
    };
    int main(int argc, char *argv[])
    {
    	for(;;) {
    		int index;
    		int c;
    		c = getopt_long(argc, argv, short_options, long_options, &index);
    		
    		if(-1==c)
    			break;
    		
    		switch(c) {
    		case 0:
    			break;
    		case 'd':
    			vd->dev_name = optarg;
    			break;
    		case 'h':
    			usage(stdout, argc, argv);
    			break;
    		default:
    			usage(stderr, argc, argv);
    			return -1;
    		
    		}
    		
    	}
    

    短参数

    static const char short_options[] = "d:h";
    

    d:表示d这个标志后面会跟一个具体参数值;
    h表示h这个标志后面没有具体参数值;

    长参数

    static const struct option long_options[] = {`
    	{"device", required_argument, NULL, 'd'},
    	{"help", no_argument, NULL, 'h'},
    	{0,0,0,0},
    };
    

    device, required_argument表示有一个具体参数值;
    help, no_argument表示没有具体参数值;

    引用

    int getopt_long(int argc, char * const argv[],
                      const char *optstring,
                      const struct option *longopts, int *longindex);
    

    argc和argv是main函数的参数,直接传入;
    optstring,短参数格式定义;
    longopts,长参数格式定义;
    longindex,参数位置

    全局变量optarg,如果某个标志有具体的值,那么参数可以通过optarg直接获得。

    深入探讨

    请直接在linux命令行中man getopt

    #include <unistd.h>
    int getopt(int argc, char * const argv[], const char *optstring);
    extern char *optarg;
    extern int optind, opterr, optopt;
    
    #include <getopt.h>
    int getopt_long(int argc, char * const argv[],
                      const char *optstring,
                      const struct option *longopts, int *longindex);
    int getopt_long_only(int argc, char * const argv[],
                      const char *optstring,
                      const struct option *longopts, int *longindex);
    
    展开全文
  • C语言main函数参数、返回值

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

    引用:https://www.cnblogs.com/findumars/p/6220233.html

    https://blog.csdn.net/Qsir/article/details/78286502

    https://blog.csdn.net/u012219371/article/details/78964904

    https://blog.csdn.net/baidu_41813368/article/details/81358559

    C语言main函数返回值:

           main函数的返回值,用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其他数字的含义则由系统决定,通常,返回非零代表程序异常退出。

    C语言main函数写法

          很多人甚至市面上的一些书籍,都使用了void main(),这其实是错误的,C/C++中从来没有定义过main。C++之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) {}is not and never has been C++, nor has it even been C.( void main( )从来就不存在于C++ 或者 C )。

    下面我分别说一下 C 和 C++ 标准中对 main 函数的定义。 
            在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的: 
               int main( void ) 
               int main( int argc, char *argv[] ) 
           如果不需要从命令行中获取参数,请用int main(void) ;否则请用int main( int argc, char *argv[] )。 main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。 如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0;不过建议我们写的时候自己加上return 0;养成良好的习惯。

    方法一:int main(void)就不说了

    方法二:int main(int argc,char *argv[]) 或  int main(int argc,char **argv)

    argc:argument count,表示参数数量的意思;

    argv:argument value,表示参数值

    如何给程序传递参数?

    Windows下生成.exe文件后,在控制台下直接在.exe文件 后加上要传递的参数即可,用空格隔开

    argv[0]:保存程序名的首地址

    argv[1]:保存输入的第一个字符串的首地址

    argv[2]:保存输入的第二个字符串的首地址

    ...

    argc:我们输入的参数个数+1,因为系统会自动给我们加一个参数,就是程序名称

    #include<stdio.h>
    int main(int argc, char *argv[])//一般使用argc来统计参个数,argv来存储参数具体值
    {
    	printf("argc is %d \n", argc);
    
    	int i;
    
    	for (i = 0; i<argc; i++)
    	{
    		printf("arcv[%d] is %s\n", i, argv[i]);
    	}
    	
    	return 0;
    }

    注:argv数组的最后一个元素存放了一个NULL的指针

    上面的代码也可以写成

    #include<stdio.h>
    int main(int argc, char **argv)//一般使用argc来统计参个数,argv来存储参数具体值
    {
    	printf("argc is %d \n", argc);
    
    	int i;
    
    	for (i=0;argv[i]!=NULL;i++)
    	{
    		//printf("arcv[%d] is %s\n", i, argv[i]);
    		printf("arcv[%d] is %s\n", i, *(argv+i));
    	}
    	
    	return 0;
    }

    在VS中,项目名称->属性->调试->命令参数   也可以设置命令参数

    方法三、int main(int argv,char * argv[],char * envp[])//参数三是环境变量

    注:envp的最后一个元素也是指向NULL

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

     

    展开全文
  • C语言中main函数参数使用

    千次阅读 2018-09-26 10:26:41
    在C99标准中定义main函数两种正确的写法 int main(void); int main(int argc, ...这里主要说明带参数main函数如何使用 int main(int argc, char* argv[]) { int i; for (i=0; i&amp;lt;argc; i++) prin...
  • 【C语言】字符串(main函数参数

    千次阅读 2019-07-04 00:59:15
    C语言字符串和main函数参数介绍与实例演示
  •  main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数参数只能有两个,习惯上这两个参数写为argc和argv。所以C99标准中规定只有以下两种定义方式是正确
  • ROS的节点有很多中调用方式,包括rosrun,launch,直接运行等,向节点内传递参数的方式也有很多,在此做个总结。 左侧专栏还在更新其他ROS实用技巧哦,关注一波? 1. rosrun + 参数服务器传递 ros::init(argc, ...
  • ![图片说明](https://img-ask.csdn.net/upload/201703/10/1489123162_559273.png)
  • C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的...
  • int main(int argc,char **argv) { ifstream infile; if (argc || !open_file(infile,argv[1])) { cerr !" ; return EXIT_FAILURE; } 这是代码的前几行,执行之后我什么都没做,就输出"No input file!",...
  • C++ 的main函数参数 数据类型转换
  • C语言main函数参数

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

    千次阅读 2020-02-11 14:18:47
    我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数参数只能有两个, 习惯上这两个参数写为argc和argv...
  • 使用main函数参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:输入test.exe  -a ...
  • JAVA main方法学习
  • gdb 调试运行设置main函数参数

    千次阅读 2014-09-05 22:28:16
     TCPL中5.10为命令行参数,在程序运行前需要设置main函数中的参数,可是gdb调试时传递参数方法如下: 1. set args 可指定运行时参数。(如:set args 10 20 30 40 50) show args 命令可以查看设置好的...
  • Linux C编程--main函数参数解析

    万次阅读 多人点赞 2013-02-28 16:11:32
    我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数参数只能有两个, 习惯上这两个参数写为argc和argv...
  • C/C++中main函数参数说明

    千次阅读 2013-09-05 16:12:10
    main()函数一般用int或者void形的。我比较喜欢用int型定义main。因为在结束的时候可以返回给操作系统一个值以表示执行情况。  int argc  这个东东用来表示你在命令行下输入命令的时候,一共有多少个参数。比方说...
  • main函数参数解析

    千次阅读 2018-05-09 20:24:31
    }其实main函数有三个参数: 第一个参数:argc是个整型变量,表示命令行参数的个数(含第一个参数)。 第二个参数:argv是个字符指针的数组,每一个元素一个字符指针,指向一个字符串。这些字符串就是命令行中的每一...
  •  ● 命令行参数类似于函数参数,只是命令行参数是传送给命令的。命令执行时,内核已经将命令行参数放入命令的栈中,命令执行时则可以获取命令行参数,解析,执行。● 命令行参数使命令可以执行不同任务。linux...
  • main函数参数的含义

    千次阅读 多人点赞 2018-04-24 17:05:34
    最近学习服务器网络编程,遇到了一个问题,main函数参数,特意整理资料记录之!!! 下面是一个带参数main函数! #include &lt;iostream.h&gt; int main(int argc,char *argv[]) { for(...
  • java中main函数参数

    千次阅读 2017-12-14 08:28:39
    java中的main函数是一个程序执行的入口,main函数必须被声明为static的,在编译的时候就已经为其分配了内存,就是说,不用调用也能执行的,那么main函数参数有什么作用呢?参数args的主要作用是为程序使用者在...
  • 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...
  • 【浅谈】main函数的三个参数

    万次阅读 多人点赞 2018-05-08 15:43:55
     我们平时使用main函数时,在main函数参数这一栏常常省略不写,或者填上(void)。那么今天我们来看看main函数的参数。 main函数的参数有哪些?  在我们写好一个main函数框架后按F10开始单步调试,一直调试到...
  • 深度剖析c语言main函数---main函数参数传递

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

    千次阅读 2019-03-27 10:09:55
    转载自:... C++ main()函数及其参数 1、首先,想想C/C++在main函数之前和之后会做些什么? 我们看看底层的汇编代码: __start:  :  init stack;  init heap;  open stdin;  open stdou...
  • main函数参数和可变参数列表

    千次阅读 2018-04-28 17:47:24
    一.main函数参数解析 一般来说,我们写main函数,就定义main(),它的参数部分看似没有,实际上,main函数也是有参数的,只是在我们写时省略了。 main函数参数由三部分组成,分别是argc(int型,表示命令行参数...
  • C++中main函数参数

    千次阅读 2018-12-23 16:51:40
    C++中main函数参数 问题 对于一个C/CPP文件来说,一般都有main函数,一个程序的执行一定会是先从main函数这个入口开始,一个最基本的程序框架大概长这样: #include &lt;stdio.h&gt; int main() { return ...
  • C++main函数中的形式参数

    万次阅读 多人点赞 2018-01-24 09:43:29
    C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 ...C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,376,633
精华内容 550,653
关键字:

main函数的参数

友情链接: 6603-3D3gong.rar