C和C++中argc和argv的含义及用法详解

 更新时间:2022年11月22日 11:39:39   作者:INEVGVUP  
argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,这篇文章主要介绍了C和C++中argc和argv的含义以及用法,需要的朋友可以参考下

C和C++中argc和argv的含义以及用法

各位小伙伴在接触C和C++的时候,总会看到这样的东西

在这里插入图片描述

很多伙伴应该都一直注意到了这两个参数,但是很多伙伴编写多年C和C++代码,还没有使用过这两个参数。argcargv这两个参数看起来很复杂,其实一点都不复杂,接下来跟着小编一探究竟吧!

为什么我们自己很少使用到这两个参数

很多伙伴从接触C语言开始,就一直在集成开发环境里编写代码。在集成开发环境中,我们运行自己所编写的C语言代码,只需要点击相应的按键即可。但是接触过linux系统,我们往往就需要用命令行的方式来编译和执行程序。那么在命令行方式下,此时这两个参数就很有作用了,能够非常方便地帮助我们实现一些功能。下面来看看具体的含义以及使用方法。

argc和argc的含义

argcargument count的缩写,代表参数的个数
argvargument vector的缩写,可以理解成参数序列
编写如下代码

#include<stdio.h>
  
int main(int argc, char* argv[]){
    printf("The value of argc is %d\n", argc);
    printf("The values of argv are:\n");
    for(int i = 0; i < argc; ++i)
        printf("argv[%d] is %s\n", i, argv[i]);
    return 0;
}

此文件命名为test1.cpp,在linux环境下使用如下命令进行编译

gcc test1.cpp -o test1

然后执行如下命令

./test1 input1.txt input2.txt HaHa 

程序输出如下

在这里插入图片描述

从这个输出结果就可以清晰地看出argc和argv的含义。argc就是参数的个数,就是命令行中以空格分隔的参数的个数,argv就是各个以空格分隔的参数字符串,所以很简单是吧,我们可以再来看一下具体有哪些作用。

两个参数的应用

很多时候,我们需要在C代码中处理文件,那么通过这种参数名,可以指定输入文件名,输出文件名等等,这样就非常有用。
还有一种使用较多的就是,通过这种参数,比如输入了哪些字符串,来决定执行哪些函数,控制输出的内容等等,这些都是非常有用的。

到此这篇关于C和C++中argc和argv的含义以及用法的文章就介绍到这了,更多相关C++ argc和argv内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C/C++ Qt 数据库与ComBox实现多级联动示例代码

    C/C++ Qt 数据库与ComBox实现多级联动示例代码

    Qt中的SQL数据库组件可以与ComBox组件形成多级联动效果,在日常开发中多级联动效果应用非常广泛,今天给大家分享二级ComBox菜单如何与数据库形成联动,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-12-12
  • C语言中static与sizeof查缺补漏篇

    C语言中static与sizeof查缺补漏篇

    static在修饰变量的时候,如果是修饰全局变量,则跟全局变量功能一样;如果是修改局部变量,则每次调用的时候,保持着上一次的值;而sizeof是用来判断一个变量及数据类型所占字节数的,下面我们详细来看看
    2022-07-07
  • 哈夫曼算法构造代码

    哈夫曼算法构造代码

    这篇文章主要介绍了哈夫曼算法构造代码,有需要的朋友可以参考一下
    2013-12-12
  • C语言每日练习之进制转换

    C语言每日练习之进制转换

    这篇文章主要介绍了C语言进制转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • 详细总结C++的排序算法

    详细总结C++的排序算法

    趁空闲时间,小编决定把C++的排序算法分析并总结下,以便温故知新。也方便需要的朋友可以参考学习。
    2016-07-07
  • Qt处理焦点事件(获得焦点,失去焦点)

    Qt处理焦点事件(获得焦点,失去焦点)

    本文主要介绍了Qt处理焦点事件(获得焦点,失去焦点),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • C++指针运算符(&和*)的实现

    C++指针运算符(&和*)的实现

    C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *,本文就详细的介绍一下这两种运算符的使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • C++设计模式之模板方法模式(TemplateMethod)

    C++设计模式之模板方法模式(TemplateMethod)

    这篇文章主要为大家详细介绍了C++设计模式之模板方法模式TemplateMethod,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 一文搞懂C++中继承的概念与使用

    一文搞懂C++中继承的概念与使用

    我们都知道面向对象语言的三大特点是:**封装,继承,多态。**之前在类和对象部分,我们提到了C++中的封装,那么今天呢,我们来学习一下C++中的继承
    2022-07-07
  • C++ 获取URL内容的实例

    C++ 获取URL内容的实例

    这篇文章主要介绍了C++ 获取URL内容的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论