main函数参数

通常,定义main函数形参列表都是空的,遇到有参数的main函数到不知道怎么理解了。

给main函数传递实参,常见的情况是传递命令参数。

int main(int argc, char *argv[]){......}

第二个形参argv是一个数组,它的元素是指向C风格字符串的指针;第二个参数argc是数组argv中字符串的数量。

因为第二个参数是数组,所以main函数也可以定义为:

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

其中argv指向char*。

当实参传给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串。

下面我分别从Visual Studio 2015的命令参数和Windows的cmd控制台进行mian函数的实参传递。

具体测试代码如下:

#include <iostream>int main(int argc, char **argv)
{while (argc-- > 0){//printf("argv[%d]:%sn", argc, argv[argc]);printf("argc:%d,*argv++:%sn", argc,*argv++);//printf("argc:%d,*++argv:%sn", *++argv);}
}

Visual Studio 2015的命令参数

命令行参数是"你 我 他",以空格为分割符。输出结果如上图所示,argc等于3,argv的第一个元素指向程序的名字。

Windows的cmd控制台

1、cmd执行.exe可执行文件

在此程序的可执行文件目录下打开cmd:

目录:

1、按住Shift键,鼠标右键快捷方式,先打开Powershell窗口。
2、输入 start cmd 回车
3、这样就可以打开cmd窗口了,并且cmd的工作目录就是当前的目录。

命令行语句:

Projectplay.exe 你 我 他

Projectplay 你 我 他

2、写批量运行脚本.bat文件运行可执行文件

批量运行文件,文件名为:main测试.bat

文件内容为:

在cmd运行.bat文件

或者直接双击.bat文件运行

好像识别汉字出现了问题,这里只是测试,能达到示意main函数的传参即可,我就不深究原因了。

如果把汉字改为数字和字母,则运行效果如预期:

最后:不用指针显示,用数组显示:

#include <iostream>int main(int argc, char **argv)
{while (argc-- > 0){printf("argv[%d]:%sn", argc, argv[argc]);//printf("argc:%d,*argv++:%sn", argc,*argv++);//printf("argc:%d,*++argv:%sn", *++argv);}
}

数组输出

注意:

因为用指针,指针是随着使用而发生变动的,所以用的时候要十分注意哦!

指针变动后,在用数组的格式输出时,相当于数组名已经发生变化了,所以argv[]就一直输出“他”,而没有像上图的数组调用的依次输出“你 我 他”。

bat循环执行带参数_C++:main处理命令行选项/main函数的参数相关推荐

  1. bat循环执行带参数_wxappUnpacker的bingo.bat脚本逐行解读

    点击上方"蓝字"关注我们 之前发过一篇文章小程序反编译工具在windows系统下的调用脚本提到了Windows平台下的脚本,但是对脚本没有做详细说明.本文就是针对脚本做的讲解.对批 ...

  2. bat循环执行带参数_dos命令exit图文教程,结束退出CMD.EXE程序或当前bat批处理脚本...

    大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天我们学习dos命令中的exit这个命令,退出 CMD.EXE 程序(命令解释器)或当前批处理脚本 ...

  3. python add argument list_python模块介绍- argparse:命令行选项及参数解析

    #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.com qq 37391319 博客: http://blog.csdn.net/oychw #版权所有,转载刊登请来函 ...

  4. CSS3: 动画循环执行(带延迟)的实现

    出处:http://www.cnblogs.com/starof/p/5443445.html 一.最终效果 需求:gift图片的小动画每隔2s执行一次. 需求就一句话,我们看一下实现过程. 二.实现 ...

  5. getopt:命令行选项、参数处理

    getopt:命令行选项.参数处理 2014-01-11 Posted by yeho 在写shell脚本时经常会用到命令行选项.参数处理方式,如: ./test.sh -f config.conf ...

  6. 《Python 黑帽子》学习笔记 - 命令行选项和参数处理 - Day 4

    在学习书中 netcat 代码的时候,发现其命令行选项和参数的处理存在一些小问题,由于调用 getopt 模块的 getopt() 函数时参数设置不当,会引起代码执行时获取不到参数值或引发异常.该问题 ...

  7. Python代码循环执行exe文件,并传入命令参数实现批量处理数据。

    python调用exe程序 传入命令参数,并实现循环批处理文件 1.问题背景 2.面临的问题 3.代码实现(案例) 4.总结 1.问题背景 参加MARS数据医疗赛道进行计算机视觉的比赛,比赛内容为赛题 ...

  8. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  9. [转载] c语言中检查命令行参数_C中的命令行参数

    参考链接: Java中的命令行参数 c语言中检查命令行参数 Command line argument is a parameter supplied to the program when it i ...

最新文章

  1. 六自由度高超声速飞行器的建模与控制器设计
  2. 正态分布图_用EXCEL简易制作正态分布图
  3. tomcat URL乱码问题
  4. 裂墙推荐!再也不用求后端给接口了...
  5. 2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)
  6. Android+Opencv图形的形状颜色识别
  7. 百度地图如何准确定位?注意surroundingPois
  8. pve万兆网卡驱动_家庭万兆方案性价比之选,10G网速不是梦!战在当下,布局未来!...
  9. 杀人游戏-Tarjan
  10. 【嵌入式学习】嵌入式开发的第一课
  11. 微信公众号自定义分享IOS失效
  12. 小米二手机价格多少钱
  13. java.util.set cannot be assigned from null_JDK源码那些事儿之浅析Thread下篇
  14. 数据探索、数据清洗学习笔记
  15. 【读书笔记】《世界尽头的咖啡馆》
  16. c# 打开的窗口显示在最前面_Excel表格中最经典的30个小技巧,全在这儿了
  17. 线程间通信的常用方式
  18. 1.1 车标图像分类
  19. html5语音读取文字_资源:文本转语音的神器!快来!
  20. 成都市等市、州 《2015工程量清单计价定额》 人工费调整〔2016〕17

热门文章

  1. jquery文件上传插件uploadify 讲解
  2. 上传本地项目到git
  3. 回溯---分割字符串使得每个部分都是回文数
  4. HDU - 6383 百度之星2018初赛B 1004 p1m2(二分答案)
  5. javaweb 导出文件名乱码的问题解决方案
  6. 回文数-时间变换-判断邮箱
  7. [算法]判断一个数是不是2的N次方
  8. 你不必害怕,岁月有的是时间让你遇见更好的人(沈善书)
  9. JS 学习笔记--11---内置对象(Global/Math)
  10. 60、date的使用