【答疑释惑】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 条评论
登录 后参与评论

相关文章

来自专栏python3

python类(class)

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

773
来自专栏Python攻城狮

Python中的模块介绍和使用1.import2.from…import 3.from … import * 4.as 5.定位模块 6.模块制作7.模块中的__all__8.python中的包 9.

在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关...

771
来自专栏我有一个梦想

Qt中纯C++项目发布为dll的方法(超详细步骤)

目录 一般创建方法 导出普通函数的方法&调用方法 导出类及其成员函数的方法&调用方法 众所周知,我们可以将C++项目中的类以及函数导出,形成 .dll 文件,以...

1926
来自专栏CodingToDie

Python学习(七):模块 优雅的封装

第7 章 模块 优雅的封装 Table of Contents Python中的模块 使用模块 定义模块 建议 模块的安装 模块搜索路径 作用域 编程是一种美德...

3074
来自专栏海天一树

小朋友学C语言(16):斐波那契数列的非递归实现

一、斐波那契简介 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,...

3378
来自专栏烂笔头

python类中super()和__init__()的区别

目录[-] 单继承时super()和init()实现的功能是类似的 class Base(object): def __init__(self): ...

3206
来自专栏学习力

《Java从入门到放弃》框架入门篇:Struts2的基本访问方式(二)

1384
来自专栏java一日一条

java 如何在pdf中生成表格

在pdf中生成一个可变表头的表格,并向其中填充数据。通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成...

441
来自专栏编舟记

Java高编译低运行错误(ConcurrentHashMap.keySet)

本地使用maven编译和运行时一切都正常,但是通过ci的方式,编译、打包、发布到部署环境,运行时抛出了一条显而易见的JDK版本的错误。

603
来自专栏地方网络工作室的专栏

Shell 命令行,实现一个获取任意位数的随机密码的脚本

Shell 命令行,实现一个获取任意位数的随机密码的脚本 每次我们想要获得一个密码的时候都很头疼,于是我之前自己用nodejs写了一个 Shell 脚本。这两天...

1816

扫描关注云+社区