c/c++ main 函数命令行参数的使用 知识小结

深度剖析c语言main函数---main函数的参数传递   在上文中,我们主要讲了c语言main函数的返回值问题,本文主要将main函数的参数传递。 main函数传参   首先说明的是,可能有些人认为main函数是不可传入参数的,但是实际上这是错误的。main函数可以从命令行获取参数,从而提高代码的复用性。 函数原形   为main函数传参时,可选的main函数原形为: int main(int argc , char* argv[],cha... 阅读详情
C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程
序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用

的是有参函数,则参数在调用时传递。


C/C++语言中的main函数,经常带有参数argc,argv,如下:

int main(int argc, char** argv)
int main(int argc, char* argv[])
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C/C++的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由
系统在启动运行时传递参数了。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1参数2....参数n¿
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。

命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5
其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。




数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后
才是参数。


下面的程序演示argc和argv的使用:


  1. #include<iostream>   
  2.   
  3. using namespace std;  
  4.   
  5. int main(int argc,char **argv){  
  6.   
  7.     for(int i=0;i<argc;i++)  
  8.         cout<<"Argument "<<i<<" is "<<argv[i]<<endl;  
  9.     return EXIT_SUCCESS;  
  10. }  
#include<iostream>

using namespace std;

int main(int argc,char **argv){

	for(int i=0;i<argc;i++)
		cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
	return EXIT_SUCCESS;
}

该程序编译运行成功,产生了 test.exe 文件,在打开DOS窗口,用cd命令进入到 test.exe 文件夹下 ,在DOS下输入如下命令:

test.exe hello! this is a test!

则运行的结果如下:

 

http://blog.youkuaiyun.com/wu_lai_314/article/details/8454394


C/C++教程-从一个main函数带你走进C、C++的世界 从一个main函数带你走进C、C++的世界 阅读详情

相关推荐

EduCoder 计算机网络实验 IP协议分析

第1关:跟踪抓包 任务描述 相关知识 IPV4数据包 截获数据报 分析截获结果 使用git将本地文件推送到远程仓库永久保存 操作要求 任务描述 本关任务:使用 Ping 命令发送数据报,用 Wireshark 截获数据报,分析 IP 数据报的格式,理解 IPV4 地址的编址方法,加深对 IP 协议的理解。 相关知识 为了完成本关任务,你需要掌握: 截获数据报; 简单分析数据包格式。 IPV4数据包 网际协议第 4 版(Internet Protocol version 4

qq_41975868的博客 1万+

c/c++ main 函数命令行参数的使用 知识小结

C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用 的是有参函数,则参数在调用时传递。 C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int

wu_lai_314的专栏 3万+

Informer:比Transformer更有效的长时间序列预测

目录 AAAI 2021最佳论文:比Transformer更有效的长时间序列预测 Background Why attention Methods:the details of Informer Solve_Challenge_1:最基本的一个思路就是降低Attention的计算量,仅计算一些非常重要的或者说有代表性的Attention即可,一些相近的思路在近期不断的提出,比如Sparse-Attention,这个方法涉及了稀疏化Attention的操作,来减少Attention计算量,然后涉及的

To be a better man 1万+

超详细的BIOS进入方法及设置内容,还不收藏?

有时候你会发现,明明在Windows里点了关机,电脑却没真正关掉,还要再按一次电源键才行。如果你的USB是2.0的,记得把传输模式设置成HiSpeed,这样传输速度会更快哦!PCI设备的设置都在这里了。一般来说,这里保持默认设置就行,别乱改,不然可能会出问题。主板上集成的那些设备,比如声卡、网卡啥的,都在这里设置。这里能看到CPU的各种参数,还能调整一些CPU的设置,让CPU更听话!这里能设置管理员密码或者用户安全相关的设置,保护你的电脑不被别人乱动。这里能设置一些启动时的选项,让电脑更符合你的使用习惯。

Libra1313的博客 10万+

YOLOv8中Bottleneck模块的残差连接机制解析

本文深入解析了YOLOv8目标检测模型中Bottleneck模块的核心设计,重点阐述了其残差连接机制。该机制通过构建一条信息“捷径”,有效缓解了深层网络中的梯度消失问题,稳定了训练过程,并提升了特征提取效率。文章结合代码详细拆解了模块结构,并探讨了其在YOLOv8骨干网络与检测头中的关键作用及参数调优思路。

weixin_29061821的博客 253

非标准包 game.rgss3a 的打开方法 | 2023 年实测

生活笔记

陌雨’的博客 1万+

main函数传参数以及执行过程

需求: 通过main函数传递参数,输入若干个字符串,并进行打印输出。 分析: main函数包括两个参数,main函数的原型为: void main(int argc,char *argv[]); argc代表了参数的个数,argv代表了每个字符串的首地址。 我们可以进行如下程序的编写: void main(int argc,char *argv[]) { whi

小宇宙的专栏 1969

win10自动修复-无限循环【通用完美】超简单解决办法

2020.02.14今个我的笔记本电脑(Thinkpad Carbon 7 X1)(win10)早晨起来发现蓝屏,上面显示自动修复失败,重启后依然自动修复失败,不断手动重启,始终是修复失败。然后上网开始搜集资料找解决办法。 前边介绍关闭自动修复,如何找出错文件的方法;如果想看最终解决办法,直接看第三部分 上网就会发现这种现象很常见,同时是电脑自动安装系统更新,或者安装某些驱动出现。解决办法也大...

y15941300574的博客 19万+

main函数中参数设置

在main函数的输入参数中设置5,输出55的数字方格。如果是输入7,则是77的数字方格。 1.Run–>Run configurations–>选择相应的你所要设参的文件(Test_String_array)–>Argument–>设置参数(5)其实 参数5即array[0] = 5 ...

weixin_45846799的博客 742

全网最详细的UAVCAN/DroneCAN链路开发(官方DroneCAN消息+自定义DroneCAN消息)附DroneCAN项目源码

全网最详细的UAVCAN/DroneCAN链路移植开发(官方DroneCAN消息+自定义DroneCAN消息)附工程移植源码

Bit_Dong的博客 3238

SAP Joule 经过了超过 2.5 亿行 ABAP 代码的训练之后......

披露的统计数据,Joule 提供的这种全新系统交互方式,可将事务性任务执行速度提高 90%,访问 SAP Help Portal 内容的速度提高 95%。在 ABAP 应用开发领域,SAP 官网数据显示,Joule 经过超过 2.5 亿行 ABAP 代码的训练,有信心成为这一领域行业领先的代码助手。刚刚过去的 SAP 蓝宝石大会上,SAP 提到,从2023年第四季度以来,SAP 已经交付了 50 项基于人工智能的创新。让其生成 SAP 应用能够识别的结构化应用数据,业务用户全程无需离开 SAP 应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 794

C/C++ 给main()传递参数

C/C++ 给main()传递参数 我把C和C++的源代码都会写下,但各位要点赞! Dev-C++也可以写C 先不急,这不是个方法,这是个知识点。 在我掌握这个知识点前,我与大家一样,main这么写: C int main(void) { return 0; } C++ using namespace std; int main(void) { return 0; } 是吧?(void...

Varible的博客 8077

【知识分享】IBIS 建模指南 05

本文详细阐述了IBIS模型创建过程中的关键技术和数据规范要求。主要内容包括:1. 数据完整性检查要点,强调I-V和V-T数据必须覆盖所有工艺角且匹配;2. 数据限制处理方法,介绍100/1000点限制下的两种数据筛选算法;3. 特殊数据处理技术,包括内部终端电阻调整和V-T表时间窗口选择;4. 高级关键字应用,涵盖[ModelSelector]、[Sub model]、[DiffPin]等复杂功能实现方法;5. 预加重缓冲器等特殊结构的建模方案。

一只豌豆象的博客 1595

C/C++中main函数接受外部参数的写法,以及如何传参数

C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char* argv[])//argv[0]表示一个指针 int main(int argc, char **argv)// *argv同样表示一个指针 argc: 整数, 为传给main()的命令行参数个数。  char** argv / char *argv[]

selina8921的博客 3万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++ main函数命令行参数使用

1. C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) C语言还规定argc(第一个形参)必须是整型变量,argv(第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main(intargc,char*argv[]) 2. 由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。...

like_study_cat的博客 2200

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C/C++ Main获取命令行参数

在用 C/C++ 写一些工具时,需要通过命令行传一些参数,这样就可以在命令行终端使用该工具或在脚本中使用该工具,从而实现批量处理。 比如近期需要实现一个对文件进行加解密的工具,我需要通过命令行传递如下参数: 需要处理的输入文件; 处理类型:加密还是解密; 处理多少长度; 输出文件; 1、函数说明 本文采用的短参数,函数定义如下: #include <unistd.h> //系统头...

AlanWang4523 1万+

[C/C++基础知识] main函数的参数argc和argv

该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助. 一.main()函数参数 通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C99中main()函数主要形式为: (1).int

杨秀璋的专栏 9万+

C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

C/C++语言中,如何在main.cpp中调用另一个.c文件主要有5种思路:   1、在VS2012 IDE中,将被引用的.c文件后缀名全部修改为.h,然后通过IDE的解决方案资源管理器中鼠标右键单击“头文件”-"添加"-“现有项”,选中修改后缀名后的.h文件-"添加",将待引用的文件添加到工程中。   添加到“头文件”而不是“源文件”的作用:主要是使头文件的项类型属性为“C/C++ 标头”,而不是“C/C++ 编译器”。后者是将该文件独立编译成目标文件*.obj。用户可右键单击某个.h文件-属性-

云海唯C的专栏 1万+

[原创]C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

  C/C++语言中,如何在main.cpp中调用另一个.c文件主要有5种思路:   1、在VS2012 IDE中,将被引用的.c文件后缀名全部修改为.h,然后通过IDE的解决方案资源管理器中鼠标右键单击“头文件”-"添加"-“现有项”,选中修改后缀名后的.h文件-"添加",将待引用的文件添加到工程中。   添加到“头文件”而不是“源文件”的作用:主要是使头文件的项类型属性为“C/C++ 标头”...

weixin_33834628的博客 2975

探索C/C++ main函数传参:成为编程高手的关键步骤

探索C/C++ main函数:成为编程高手的关键步骤

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 2735

Clion配置单个project下可以运行多个CPP文件的main函数

Clion配置单个project下可以运行多个CPP文件的main函数 我们使用clion可能经常会遇到单个project下想运行单个cpp的main函数,每个文件都可以运行自己独立的main函数的场景,但是clion默认是只支持单个project只能运行一个文件的main函数,那么我们该如何去解决这个情况呢? (特别是LeetCode周赛的时候,很容易的想一个project下先建四个cpp文件,然后遇到wa的情况来调试,每次调试一个新建cpp的main函数) 1.新建一个project 如图所示,当我们新

子冉冰清的博客 8777

C/C++中main函数参数的作用

以以下代码为例printf("程序名称: %s\n", argv[0]);printf("参数个数 (包括程序名): %d\n", argc);int i=0;for (;i < argc;argc参数计数int含义:表示命令行参数的数量重要argc的值至少为1,因为第一个参数总是程序本身的名称argv参数向量char*数组(字符串数组)含义:包含所有命令行参数的字符串数组(指针数组)索引规则argv[0]:程序名称或路径argv[1]到:用户提供的实际参数。

2401_89119815的博客 1345

【C/C++ main函数】深入探索C++中的main函数及其参数

在编程的世界中,`main`函数是每个程序员都会遇到的第一个“门槛”。它是程序的入口点,是程序开始执行的地方。但是,为什么我们需要`main`函数?它的参数`argc`和`argv`又是什么?为什么它们是如此设计的?

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1276
上一篇: C风格字符串结束符用作逻辑判断
下一篇: C++ 容器vector 语法练习
sergery
博客等级 码龄18年 113粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值