c++中main(int argc, char* argv[])参数详解

目录

一、main函数形式

1.无参数:

2.带有两个参数:

二、参数详解

1.int argc

2.char* argv[]

三、示例演示


一、main函数形式

在C++中,main 函数可以有两种常见的参数形式:

1.无参数

代码如下:

int main() {  // ...  return 0;  
}

这是最基础的 main 函数形式。 

2.带有两个参数

代码如下:

int main(int argc, char* argv[]) {  // ...  return 0;  
}

        第一种不带参数很好理解,下面就来详细理解第二种带有两个参数的形式。

二、参数详解

1.int argc

        main函数第一个参数为int argc,int表示为整形,argc全称为argument count,翻译为中文就是参数数量,可见第一个参数很好解释就是表示传递给程序的命令行参数的数量(包括程序名称)

2.char* argv[]

        main函数第二个参数为char* argv[],char*表示字符指针,argv全称为argumen vector,翻译中文就是参数数组。

        很多人看到这个参数指char* argv[],应该大多数新手程序员都是一脸懵的状态,心想char argv[]表示传递的参数是字符数组也就是字符串,但是又加上了*指针是什么意思呢?不要着急,下面看上一段代码,保证新手也能够理解!

	char nameStr1[] = "David";char nameStr2[] = "Lucy";// char* name[] 表示的是字符串数组	char* name[] = { nameStr1,nameStr2 };for (auto item : name){cout << item << endl; // David  Lucy}

        从上面三行代码不难看出,char* argv[]其实存储的就是字符串数组,其中nameStr1和nameStr2表示的是指针(参考int arr[],arr为指针地址。虽然std::cout << nameStr1;结果为"David",不是地址。这是因为std::cout 的 << 运算符重载版本知道如何处理 char*(字符指针)类型的参数。它不会打印出指针的地址,而是打印出指针指向的字符串内容所以综上所述,main函数中第二个参数表示的就是数组,数组里面包含这命令行参数的内容。 

三、示例演示

1.新建项目输入代码

#include <iostream>int main(int argc, char* argv[])
{std::cout << "参数个数为:" << argc << std::endl;for (int i = 0; i < argc; i++){std::cout << "参数为: " << argv[i] << std::endl;}
}

2.获取执行程序路径名

        右键运行程序,点击重新生成。

        获取运行程序路径

3.打开控制台程序,输入运行程序的路径以及其他参数

        结果可见第argv 将是一个包含四个字符串的数组:

"D:\class_c++\YiDaoYun_Class2.1\Debug\1.main_arguement.exe""arg1""arg2", 和 "arg3"。 

第一个数组元素为运行程序的运行地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

私域运营技术干货 | 基于精准用户分群的个性化智能外呼策略实践

智能外呼产品经过了近几年的发展&#xff0c;作为一种用户触达的手段&#xff0c;普及率越来越高。但是智能外呼产品本身的劣势就是客户黏性差&#xff0c;迁移成本低&#xff0c;导致市场竞争非常激烈&#xff0c;各家都是拼价格拼线路资源&#xff0c;同质化严重。如何建立云…

flink学习-容错机制

checkpoint&#xff08;检查点&#xff09; 在flink中最重要的容错机制&#xff0c;就是checkpoint机制&#xff0c;使用checkpoint可以将之前某个时间点的所有的状态进行保存&#xff0c;这个存档就是checkpoint。 检查点的保存 周期性存储保存&#xff0c;间隔时间可以由用…

游戏报错steam_api.dll丢失怎么解决?steam_api.dll缺失的7种靠谱解决方法

steam_api.dll 是一个由 Valve Corporation 开发的动态链接库文件&#xff0c;专门用于其 Steam 游戏平台。这个文件是 Windows 操作系统下的一个重要组件&#xff0c;它确保了通过 Steam 平台发布的游戏能够正常运行&#xff0c;并且能够使用 Steamworks API 提供的各种功能。…

TIA博途Wincc_如何实现开机画面等待几秒后,自动跳转到主画面?

TIA博途Wincc_如何实现开机画面等待几秒后,自动跳转到主画面? 想要实现的功能: 上电开机后,在开机画面等待几秒后,自动跳转到主画面, 如下图所示,新建一个项目后,添加一个开机画面和主画面 如下图所示,在HMI变量中添加一个int型变量BitTime, 如下图所示,设置该变量…

怎么把pdf格式文件其中几页单独弄出来

在现代办公和学习环境中&#xff0c;pdf格式的文件因其跨平台兼容性和良好的保持原样特性而备受欢迎。然而&#xff0c;有时我们可能只需要pdf文件中的某几页&#xff0c;而不是整个文件。这时&#xff0c;将PDF文件中的特定页面单独提取出来就显得尤为重要。 搜索一下&#xf…

IDEA 高效插件工具

文章目录 LombokMaven Helper 依赖冲突any-rule(正则表达式插件)快速生成javadocGsonFormat (Aits) 将json解析成类Diagrams使用 类图SequenceDiagram时序图GenerateAllSetter&#xff08;AltEnter&#xff09;大小写转写String ManipulationGitToolBox 代码提交人activate-pow…

Flutter- AutomaticKeepAliveClientMixin 实现Widget保持活跃状态

前言 在 Flutter 中&#xff0c;AutomaticKeepAliveClientMixin 是一个 mixin&#xff0c;用于给 State 类添加能力&#xff0c;使得当它的内容滚动出屏幕时仍能保持其状态&#xff0c;这对于 TabBarView 或者滚动列表中使用 PageView 时非常有用&#xff0c;因为这些情况下你…

诊所管理系统如何重塑患者就医流程

随着信息技术的快速发展&#xff0c;诊所管理系统的应用正在为医疗服务带来革命性的变化。这一系统不仅仅是一种管理工具&#xff0c;更是一种全方位的健康管理解决方案&#xff0c;从诊前、诊中到诊后&#xff0c;为患者提供了一系列便捷、高效的服务&#xff0c;让患者的就医…

Oracle数据库面试题-12

41. 描述Oracle中的位图索引及其用途。 Oracle中的位图索引&#xff1a; 位图索引是Oracle数据库中的一种特殊类型的索引&#xff0c;它适用于包含大量重复值的列。位图索引使用位图数据结构来存储这些值&#xff0c;从而提供了一种快速查找特定值是否存在于索引列中的方法。…

信息收集---网站目录和CMS指纹识别

一. 网站目录收集 1. 常见网站敏感文件 网站的备份文件/数据库备份文件 wwwroot.zip Db.zip 后台登陆的目录 manage login 安装包&#xff08;源码&#xff09; 上传的目录uploads mysql的管理界面 phpmyadmin 程序的安装路径 2. Dirb 工具 工具介绍 dirb 是一款用…

ICC2:如何获取get_xx -filter后可用的属性有哪些?

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 report_attribute -app -class cell $instname 这种直接告诉你指定cell有哪些属性&#xff0c;以及对应的值是什么 或者直接用list_attribute也可以 list_attribute -help可以…

迅为3A6000_7A2000开发板龙芯全国产处理器LoongArch架构核心主板

性能强→采用全国产龙芯3A6000处理器&#xff0c;基于龙芯自主指令系统(LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片→采用龙芯 7A2000&#xff0c;支持PCIE3.0、USB3.0和 SATA 3.0、显示接口2 路、HDMI和1路 VGA&a…

编程猫电脑怎么安装不了:深入剖析原因与解决方案

编程猫电脑怎么安装不了&#xff1a;深入剖析原因与解决方案 在数字化时代的浪潮中&#xff0c;编程教育日益受到重视&#xff0c;而编程猫作为一款备受欢迎的编程学习软件&#xff0c;却在安装过程中遭遇了不少困扰。今天&#xff0c;我们就来深入剖析编程猫电脑版安装不了的…

积累和消耗,人生本质的两件事

人生的本质其实就两件事&#xff0c;消耗和积累。 纵观你身边所有的人&#xff0c;他们做的所有的事&#xff0c;基本都可以分为两类。 一、积累 二、消耗 比如说感情&#xff0c;在我们每一个人的青春回忆里&#xff0c;都或多或少有一段刻骨铭心的感情&#xff0c;有些人的感…

Linux进程间通信---使用【共享内存+信号量+消息队列】的组合来实现服务器进程与客户进程间的通信

IPC结合实现进程间通信实例 下面将使用【共享内存信号量消息队列】的组合来实现服务器进程与客户进程间的通信。 共享内存用来传递数据&#xff1b;信号量用来同步&#xff1b;消息队列用来 在客户端修改了共享内存后通知服务器读取。 server.c&#xff1a;服务端接收信息 …

如何解除内存卡的写保护并格式化为exFAT文件系统

最近有客户提问内存卡提示写保护&#xff0c;且无法格式化为exFAT格式的问题&#xff0c;可能是由于多种原因引起的。以下是一些可能的解决方法&#xff1a; 1. 检查物理写保护开关 一些SD卡和MicroSD卡适配器上有一个小的物理开关&#xff0c;可以启用或禁用写保护。确保这个…

C# WPF 读写CAN数据

C# WPF 读写CAN数据 CAN 分析仪 分析仪资料下载 官方地址&#xff1a;https://www.zhcxgd.com/1.html CSDN&#xff1a; 项目配置 复制Dll库文件 文件在上面的资料里面 设置不安全代码 CAN C#工具类 CAN_Tool.cs using Microsoft.VisualBasic; using System; using Sys…

任务3.8.2 利用RDD计算总分与平均分

实战&#xff1a;使用RDD 计算学生成绩的总分与平均分 项目背景 本项目旨在利用 Apache Spark 的强大数据处理能力&#xff0c;对存储在 HDFS 上的学生成绩文件进行处理&#xff0c;计算每个学生的总分和平均分。 项目目标 读取存储在 HDFS 上的成绩文件。计算每个学生的总…

MySQL 触发器(实验报告)

一、实验名称&#xff1a; 触发器 二、实验日期&#xff1a; 2024 年 6月 8日 三、实验目的&#xff1a; 掌握MySQL触发器的创建及调用&#xff1b; 四、实验用的仪器和材料&#xff1a; 硬件&#xff1a;PC电脑一台&#xff1b; 配置&#xff1a;内存&#xff0c;…

学习笔记丨嵌入式BI分析的12个关键功能

编者注&#xff1a;以下内容节选编译自嵌入式分析厂商Qrvey发表的《What is Embedded Analytics?》&#xff08;什么是嵌入式分析&#xff09;一文&#xff0c;作者为Qrvey产品市场主管Brian Dreyer。 什么是嵌入式分析&#xff1f; 嵌入式分析是指能够将数据分析的特性和功…