main 未定义 但是已经有main 函数了_【C++】main函数的参数 argc 和 argv

7b1b7e726424168c1f5be5a5343b9dbb.png

1、argc 和 argv

一般入门C或者C++基础知识时,主函数都是直接用的下面形式:

#include

而在C++标准中,其实main函数的主要形式有:

int 

前者就是前面提到的形式,而后者在C++开发中更常用到,那后者main函数的argcargv参数是什么意思呢?

这两个参数主要是用来保存程序运行时传递给main函数的命令行参数的。

  1. argc:是argument count 的缩写,保存运行时传递给main函数的参数个数。
  2. argv:是argument vector 的缩写,保存运行时传递main函数的参数,类型是一个字符指针数组,每个元素是一个字符指针,指向一个命令行参数。

argv[0]指向程序运行时的全路径名;

argv[1] 指向程序在命令行中执行程序名后的第一个字符串;

argv[2] 指向程序在命令行中执行程序名后的第二个字符串;

以此类推直到argv[argc]......

argv[argc] 在C++中指向nullptr,在C语言中指向NULL。

2、实验验证

运行如下代码:

#include 

先再vs中打断点:

1f550792572adc3e2ab062a1a112f8fb.png

运行程序后先在DOS中输出:

12678635f6d20979c9d32d91e79d3e57.png

然后程序崩溃:

2b107ca8eb092f63b62b624bcd245497.png

原因在于程序第13行引用数组越界,因为argv[argc] = nullptr(NULL):

cout 

将改行注释掉并重新编译生成,再从命令行启动程序,并在后面增加参数,每个参数用空格分隔:

f4be0e43cf806b24ba66151f05cae7d7.png

结果如下:

405dfecc59e87882a454e0371b4ac273.png

因此便可说明前述是正确的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值