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"。 

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Scala网络编程:代理设置与Curl库应用实例

在网络编程的世界里&#xff0c;Scala以其强大的并发模型和函数式编程特性&#xff0c;成为了开发者的得力助手。然而&#xff0c;网络请求往往需要通过代理服务器进行&#xff0c;以满足企业安全策略或访问控制的需求。本文将深入探讨如何在Scala中使用Curl库进行网络编程&…

DBeaverUE Mac版:数据库管理新纪元,一键掌控所有数据

DBeaverUE for Mac是一款卓越的数据库管理软件&#xff0c;专为Mac用户设计&#xff0c;提供了一套高效、稳定且全面的数据库解决方案。以下是关于这款插件的详细介绍&#xff1a; 1. 强大的数据库支持 DBeaverUE for Mac支持多种数据库系统&#xff0c;包括但不限于MySQL、Po…

【启明智显分享】个位数价格工业HMI芯片:720P@60fps,配备2D加速

我们生活在一个“屏”的时代&#xff0c;工业自动化、智能生活的实现都离不开屏幕的帮助&#xff0c;而对于消费者而言&#xff0c;最大的痛点就是显示屏的画质&#xff0c;一个优质的人机交互界面影响着用户体验&#xff0c;流畅清晰的图像呈现与屏幕的分辨率、刷新率都息息相…

Docker-Portainer可视化管理工具

Docker-Portainer可视化管理工具 文章目录 Docker-Portainer可视化管理工具介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、拉取Portainer汉化版本镜像四、运行容器五、访问可视化界面 介绍 Portainer是一款开源的容器管理平台&#xff0c;它提供了一个直观易用的…

Unity UGUI ScrollRect 滑动显示左右箭头

目录 一、前言 二、效果 三、代码解析 EnhancedScrollRect.cs 解析 Start 方法 HandleArrowVisibility 方法 EnhancedScrollRectEditor.cs 解析 OnEnable 方法 OnInspectorGUI 方法 四、完整代码 EnhancedScrollRect.cs EnhancedScrollRectEditor.cs 五、总结 De…

零碳产业园区建设指南案例

零碳产业园区的建设一直备受广泛关注&#xff0c;特别是在我国碳达峰碳中和的背景下。据不完全统计&#xff0c;目前&#xff0c;全国共有国家级和省级园区2500余家&#xff0c;这些园区在贡献了全国50%工业产出的同时&#xff0c;其CO2排放量也占到了全国排放总量的30%以上。作…

31、shell循环

一、循环 循环&#xff1a;循环是一种重复执行一段代码的结构。只要满足循环的条件&#xff0c;会一直执行这个代码。 循环条件&#xff1a;在一定范围之内&#xff0c;按照指定的次数来执行循环。 循环体&#xff1a;在指定的次数内&#xff0c;执行的命令序列。只要条件满…

谷粒商城实战(035 k8s集群学习1-前置介绍)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第339p-第p342的内容 分布式高级篇总结 高可用集群 内容 k8s介绍 为什么使用k8s 组件 master组件 node&#xff08;节点&#xff09;组件 要部…

2.spring cloud gateway 源码编译

spring cloud gateway编译 1.编译 命令 mvn clean compile -U2.报错 报错信息 核心信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check (checkstyle-validation) on project spring-cloud-gateway-mvc: Failed during …

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】神经元和人工神经网络

神经元 生物神经元&#xff1a; 平时处于抑制状态&#xff0c;当接受信息量达到一定程度后进入兴奋状态。 人工神经元&#xff1a; 一个人工神经元大致有两个步骤&#xff1a; 一是收集信息&#xff0c;如上图中 x 1 , ⋯ , x d x_1,\cdots,x_d x1​,⋯,xd​表示神经元可…

Android AOSP定制去掉Google搜索栏

Android AOSP定制去掉Google搜索栏 1.前言&#xff1a; ​ 最近接触了Android系统定制的需求&#xff0c;感觉非常有意思&#xff0c;之前做过Launcher和串口&#xff0c;也自己安装过虚拟机&#xff0c;不过几年没用Linux系统了有点不习惯&#xff0c;Linux命令也不熟悉&…

Flink Sql:四种Join方式详解(基于flink1.15官方文档)

JOINs flink sql主要有四种连接方式&#xff0c;分别是Regular Joins、Interval Joins、Temporal Joins、lookup join 1、Regular Joins&#xff08;常规连接 &#xff09; 这种连接方式和hive sql中的join是一样的&#xff0c;包括inner join&#xff0c;left join&#xff…

【论文阅读】-- 时态合并树状图:时态标量数据的基于拓扑的静态可视化

时态合并树状图&#xff1a;时态标量数据的基于拓扑的静态可视化 摘要1 引言2 相关工作及背景介绍2.1 增广合并树2.2 (增强)合并树的可视化与跟踪2.3 特征跟踪2.4 数据线性化 3 时间合并树状图3.1 映射单个时间步长&#xff1a; R d → R R^d \rightarrow R Rd→R3.2 映射所有时…

Unity 设置窗口置顶超级详解版

目录 前言 一、user32.dll 1.什么是user32.dll 2.如何使用user32.dll 二、句柄Handle 1.句柄 2.句柄的功能 3.拿句柄的方法 三、窗口置顶 1.窗口置顶的方法 2.参数说明 3.使用方法 四、作者的碎碎念 前言 up依旧挑战全网讲解最详细版本~~ 本篇文章讲解的是unity…

基于Springboot的小型超市商品展销系统-计算机毕业设计源码01635

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

anaconda安装pytorch-快速上手99%可以(可以虚拟环境OR不进行虚拟环境)

一、预备工作 先检查自己是否有anaconda 在cmd里面输入conda --version查看 二、在anaconda中创建虚拟环境 1.1 打开Anaconda Prompt 1.2 进行自定义安装python 将其中的自定义地址和版本换成自己想安装的地址和版本 我这里安装的地址是E:\Anaconda\DL,python版本是3.8.3…

循环 -控制语句

循环 循环是什么 重复执行一段代码的结构。只要满足循环的条件&#xff0c;会一直执行这个代码。 循环条件&#xff1a;在一定范围之内&#xff0c;按照指定的次数来执行循环。 循环体&#xff1a;在指定的次数内执行的命令序列。只要条件满足循环体会被一直执行。 循环和…

Windows搭建nacos集群

Nacos是阿里巴巴的产品&#xff0c;现在是SpringCloud中的一个组件。相比Eureka功能更加丰富&#xff0c;在国内受欢迎程度较高。 下载地址&#xff1a;Tags alibaba/nacos GitHub 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;8888 解压文件夹 目录说明&am…

FPGA - 滤波器 - FIR滤波器设计

一&#xff0c;数字滤波器 滤波器是一种用来减少或消除干扰的器件&#xff0c;其功能是对输入信号进行过滤处理得到所需的信号。滤波器最常见的用法是对特定频率的频点或该频点以外的频率信号进行有效滤除&#xff0c;从而实现消除干扰、获取某特定频率信号的功能。一种更广泛的…

MyBatis 高级映射与延迟加载(分步查询)的详细内容

1. MyBatis 高级映射与延迟加载&#xff08;分步查询&#xff09;的详细内容 文章目录 1. MyBatis 高级映射与延迟加载&#xff08;分步查询&#xff09;的详细内容2. 准备工作3. 多对一 高级映射3.1 第一种方式&#xff1a;级联属性映射3.2 第二种方式&#xff1a;association…