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

article/2025/10/23 14:25:03

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代码中处理文件,那么通过这种参数名,可以指定输入文件名,输出文件名等等,这样就非常有用。
还有一种使用较多的就是,通过这种参数,比如输入了哪些字符串,来决定执行哪些函数,控制输出的内容等等,这些都是非常有用的。


http://chatgpt.dhexx.cn/article/jiXERL3h.shtml

相关文章

c++笔记(1):C++中命令行参数argc,argc[ ]究竟是什么

C中命令行参数argc&#xff0c;argc[ ]究竟是什么 1.argc为整数 2.argv为指针的指针&#xff08;可理解为&#xff1a;char **argv or: char *argv[] or: char argv[][] &#xff0c;argv是一个指针数组&#xff09; 注&#xff1a;main()括号内是固定的写法。 3.下面给出一…

关于C++中的argc,argv的使用方法

想必很多人都好奇C中的int argc 和 char **argv 。那我们今天来看看argc,argv的使用方法 1&#xff0c;int argc argc 实际上指命令行接受的参数个数&#xff0c; 比如说&#xff0c;这个程序给的参数是10和21&#xff0c;那么argc的值就是3。为什么是三呢&#xff0c;不是二…

前端面试题整理(一)

1、什么是HTML HTML 指的是超文本标记语言 (Hyper Text Markup Language)&#xff0c;不是一种编程语言&#xff0c;而是一种标记语言&#xff0c;是标准通用标记语言下的一个应用&#xff0c;也是一种规范&#xff0c;一种标准&#xff0c;它通过标记符号来标记要显示的网页中…

《动手学深度学习》—学习笔记

文章目录 深度学习简介起源特点小结 预备知识获取和运行本书的代码pytorch环境安装方式一方式二 数据操作创建运算广播机制索引运算的内存开销NDArray和NumPy相互变换Tensor on GPU&#xff08;PyTorch&#xff09; 自动求梯度MXNetPyTorch 查阅文档 深度学习基础线性回归线性回…

1. Linux系统简介

目录 1.1 操作系统是什么 1.2 Linux是什么,有哪些特点? 1.3 Linux和UNIX的关系及区别 UNIX 的坎坷历史 Linux 的那些往事 UNIX与Linux的亲密关系 UNIX/Linux系统结构 1.4 类UNIX系统是什么鬼? 1.5 Linux中大量使用脚本语言,而不是C语言! C语言并不是最佳选择 脚…

NLP在线医生(一)

1.1 背景介绍 学习目标: 了解智能对话系统的相关背景知识.掌握使用Unit对话API. 什么是智能对话系统&#xff1f; 随着人工智能技术的发展, 聊天机器人, 语音助手等应用在生活中随处可见, 比如百度的小度, 阿里的小蜜, 微软的小冰等等. 其目的在于通过人工智能技术让机器像人类…

计算机网络自顶向下 概念填空整理(完整)

第一章 计算机网络和因特网 1.1 什么是因特网 我们可以从两个角度来回答这个问题&#xff1a;一种是描述组成它的软硬件&#xff1b;另一种是将其视为为分布式应用提供基础服务的联网设施来描述。其实&#xff0c;第一种角度&#xff0c;是从它的组成来描述&#xff0c;第二种…

计算机网络期末复习攻略

计算机网络期末复习攻略 一、名词解释 IP&#xff1a;Internet Protocol 网际互连协议 IPCP&#xff1a;IP Control Protocol IP控制协议 ARP&#xff1a;Address Resolution Protocol 地址解析协议 RARP&#xff1a;Reverse Address Resolution Protocol 逆地址解析协议 …

《计算机网络自顶向下》笔记

【自用】转自&#xff1a;https://blog.csdn.net/qq_39326472/article/details/88089747 目录 第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 组成描述 1.1.2 服务描述 1.1.3 协议 1.2 网络的边缘 1.2.1 接入网 1.2.2 物理媒体 1.3 网络核心 1.3.1 分组交换 1.3.2 电路交换…

java面试技术栈

java基础 数据结构 排序算法 算法分类 十种常见排序算法可以分为两大类&#xff1a; 比较类排序&#xff1a;通过比较来决定元素间的相对次序&#xff0c;由于其时间复杂度不能突破O(nlogn)&#xff0c;因此也称为非线性时间比较类排序。非比较类排序&#xff1a;不通过比…

深入探索 Android 网络优化(一、网络筑基篇,为什么Flutter能最好地改变移动开发

专用网络 某些部队、组织或者某些人 为了满足特殊业务需求而建立起来的特殊的网络,例如军队、铁路、银行都有自己的专用网络。 二、网络历史演进 1、世界互联网发展历史演进 1)、单个网络 ARPANET,1969年美国国防部创建的一个网络,可以连接周围的计算机。 计算机直接…

637道Java面试题(含答案)

作者&#xff1a;蝉沐风 关注公众号「蝉沐风」&#xff0c;回复「面试题」三个字 &#xff0c;获取更多面试题&#xff0c;这篇文章只是冰山一角 面试题持续整理中&#xff0c;关注「蝉沐风」之后添加个人微信&#xff0c;拉你进技术群&#xff0c;不定期分享好几吨的Java视频教…

【个人笔记 | Pytorch课程 | 整理中ing】

【小土堆】 小土堆课程视频 笔记others&#xff1a; 入门与Dataset数据加载 【入门/数据/预处理】 pycharm 安装&#xff1a;https://www.jetbrains.com/pycharm/、指南、 可以在右上写代码&#xff0c;可以在左下控制台写程序(一般用于调试) conda-Pytorch 深度学习…

计算机网络笔记

目录 第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 组成描述 1.1.2 服务描述 、 1.1.3 协议 1.2 网络的边缘 1.2.1 接入网 1.2.2 物理媒体 1.3 网络核心 1.3.1 分组交换 1.3.2 电路交换 1.3.3 分组交换和电路交换的对比 1.3.4 网络的网络 1.4 分组交换…

PyTorch深度学习-跟着小土堆学习

目录 学习视频链接一些问题P4&#xff1a;Python/PyTorch学习中两大法宝函数-dir()、help()P5&#xff1a;PyCharm及Jupyter使用及对比P6&#xff1a;PyTorch加载数据初认识P7&#xff1a;Dataset类代码实战P8&#xff1a;TensorBoard的使用&#xff08;一&#xff09;P9&#…

[零基础][最简单的教程]图像多分类问题的解决——基于resnet50的pytorch的实现

文章目录 前言一、开始任务的前提条件二、深度学习通用框架三、修改代码前&#xff0c;使用者需要明确的问题1.图片分成三个集&#xff0c;并放在正确的位置2.明确你是几分类问题3.明确你是使用的模型网络 四、图像分类通用pytorch框架——具体代码实现一、输入处理模块0.引入库…

深入探索 Android 网络优化(一、网络筑基篇)上

前言 成为一名优秀的Android开发&#xff0c;需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样~。 网络优化一直被认为是移动优化水最深的领域之一&#xff0c;因此要想对网络进行深入优化&#xff0c;我们就必须先打下比较扎实的网络基础…

计算机网络(自顶向下方法)学习笔记

目录 第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 组成描述 1.1.2 服务描述 1.1.3 协议 1.2 网络的边缘 1.2.1 接入网 1.2.2 物理媒体 1.3 网络核心 1.3.1 分组交换 1.3.2 电路交换 1.3.3 分组交换和电路交换的对比 1.3.4 网络的网络 1.4 分组交换中的时延…

【我是土堆 - PyTorch教程】学习随手记(已更新 | 已完结 | 10w字超详细版)

目录 1. Pytorch环境的配置及安装 如何管理项目环境&#xff1f; 如何看自己电脑cuda版本&#xff1f; 安装Pytorch 2. Python编辑器的选择、安装及配置 PyCharm PyCharm神器 Jupyter&#xff08;可交互&#xff09; 3. Python学习中的两大法宝函数 说明 实战操…

SpringCloud(H版以及Alibaba版本)的学习笔记(三)

本笔记学习自B站尚硅谷Springcloud时所记录 学习视频链接源码地址【码云】 笔记内容包括了&#xff1a;Springcloud的H版以及Alibaba版本 H版具体内容包括&#xff1a;Eureka、Zookeeper、Consul、Ribbon、OpenFeign、Hystrix、Gateway、Config、Bus、Stream、Sleuth等技术的…