🧑💻main函数传参
type
Post
status
Published
date
Mar 19, 2026
slug
cpp_main_paramete
summary
C++的main函数传递参数
tags
c++
main函数
入口函数
参数传递
命令行传递参数
category
C++基础
icon
password
C++ main函数如何传递参数?
main函数的参数
mian(int argc, const char *argv[])
- argc (argument count):参数的个数,整型。*注意:它的值等于实际传递的参数个数 + 1**(因为默认将程序自身的执行路径作为第一个参数算入)。
- argv (argument vector):参数字符串数组。它是一个字符指针数组,数组中的每个元素都是一个 `const char*` 指针,指向一个以 `\0` 结尾的 C 风格字符串。
PS:默认不传递参数时,**argc = 1**,argv[0] = 程序的启动命令,例如(`c:/debug/test.exe`)。
而没有传递参数,那么直接访问
argv[1] 会导致数组越界(野指针解引用),因此常用方式如下:易错点与易混点补充
- 参数个数计数误区
- 假设在命令行执行:
test.exe 123 abc - 此时
argc的值是 3,而不是 2。argv[0]是test.exe,argv[1]是"123",argv[2]是"abc"。
- 带空格的参数处理
- 命令行默认以空格分隔参数。如果传递的参数本身包含空格(如文件路径
C:\My Documents\test.txt),必须用双引号将其括起来:test.exe "C:\My Documents\test.txt"。这样它会被当作一个完整的参数存入argv[1]中。
argv的等价写法const char *argv[]和const char **argv是完全等价的。在函数参数传递时,数组名会退化为指针,两者可以互换使用。
- 隐藏的第三个参数(拓展)
- 在部分操作系统(如Linux/POSIX标准)和编译器中,
main函数其实可以有第三个参数:char *envp[](环境变量表)。但这是非标准的,跨平台开发时不推荐使用,通常推荐使用标准库的getenv()函数代替。
VS studio配置参数
Vs studio快速设置debug环境的默认参数的方式:
解决方案 → 项目名称 → 属性 → 配置属性 → 调试 → 命令参数
上一篇
日志系统实现
下一篇
Python While循环
Loading...