【答疑释惑】main函数的参数是哪里传递来的

int main(int argc, char *argv[])

这个参数是哪里传递来的?

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

int main(int argc, char** argv) int main(int argc, char* argv[])

这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) argv存储了所有的命令行参数。

1.通过命令行运行

假如你的程序是Helloworld.exe,在cmd命令行运行时,增加参数即可:

Helloworld.exe hello

hello即为参数。

2.通过vs设置传递

右键项目->属性->配置属性->调试->命令行参数

3.快捷方式添加

右键点击可执行程序的快捷方式,属性->目标。在路径最后添加即可。

PS:

请问这里为什么要设置这两个参数呢?不要不行吗?

有些时候程序运行时需要提供一些参数。比如copy命令,需要指明源文件和目标文件名,就得通过argc和argv来传递。

为什么第二个形参参数要用指针数组?

由于命令行中的字符串的长度事先并不知道,而且各个参数字符串的长度一般也并不相同,因此只有用指针数组能够比较好地满足上述要求,可以从这里体会指针数组的用处。


原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

HDK扩展自定义VEX函数print

VEX中有两种可以调试代码查看变量值的方法,一种通过printf函数来查看变量值,一种是创建属性进到SpreadSheet面板查看变量值,像下面这样 演示效果:...

1978
来自专栏一个会写诗的程序员的博客

MyBatis 中 ResultType 和 ResultMap 的区别

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

1591
来自专栏程序生活

2017/6/9-Python文件读写的方法

# 使用斜杠“/”: "c:/test.txt"… 不用反斜杠就没法产生歧义了 # 将反斜杠符号转义: "c:\\test.txt"… 因为反斜杠是转义符,所...

3157
来自专栏Java帮帮-微信公众号-技术文章全总结

【数据库】MySQL进阶五、带or多条件查询

【数据库】MySQL进阶五、or多条件查询 MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询。使用OR关键字时: 条件 1) 只要符合这...

3647
来自专栏java达人

sql server 获取每一个类别中值最大的一条数据

数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三...

1669
来自专栏闻道于事

Java实现简单文件过滤器

输入路径查找该路径下的指定文件类型的文件 代码思路: 想要循环遍历文件夹下所有子文件夹,就要用到递归。 首先判断路径是否存在:   是:获取文件     判断是...

28810
来自专栏北京马哥教育

Shell特殊变量和命令行参数详解

? 1.shell变量基础 shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。 所以若要进行数学运算,必须...

3436
来自专栏python3

python类(class)

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理...

833
来自专栏乐沙弥的世界

MongoDB 多键索引

更多参考 MongoDB 单键(列)索引 MongoDB 复合索引 MongoDB执行计划获取(db.collection.explain()) ...

783
来自专栏L宝宝聊IT

Shell脚本应用(for、while循环语句和case分支语句)

1174

扫码关注云+社区