你了解argc和argv吗(以及在devc++中如何命令行传参)
解释
argc和argv是C和C++程序中的参数,用于处理命令行输入。它们通常在main函数中使用,格式如下:
int main(int argc, char *argv[]) {
// 程序代码
}
-
argc(Argument Count,参数计数):
一个整数,表示命令行参数的数量,包括程序名称本身。即使没有其他参数,argc的值至少为1。
-
argv(Argument Vector,参数向量):
一个字符串数组,包含所有的命令行参数。argv[0]通常是程序的名称,argv[1]到argv[argc-1]是实际传入的参数。
示例
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Argument count: %d\n", argc);
for (int i = 0; i < argc; i++) {
printf("Argument %d: %s\n", i, argv[i]);
}
return 0;
}
-
若在DevC++中直接点击编译运行,如图:
点击后直接跳出如下内容:
-
上面的操作不太对,没有使用命令行参数。
在DevC++中,我们可以在运行程序时添加命令行参数。
具体操作步骤为:
先点击运行,然后在弹出的窗口中点击运行,再点击运行参数,如图:
然后在弹出的窗口中输入参数,如图:
点击确定后,再编译运行,程序会输出如下内容:
从输出结果,我们可以看到是参数以空格分隔的。
对envp的补充:
在C语言中,envp参数表示环境变量指针数组,传递给main函数时,它包含了当前进程的环境变量。环境变量是键值对(如PATH=/usr/bin
),用于提供进程运行时的系统环境信息。通常,main函数可以定义三个参数:argc
(参数个数)、argv
(参数数组)、envp
(环境变量数组)。
在 main 函数中,envp 是第三个参数,存储了当前进程的所有环境变量。
比如:
#include <stdio.h>
int main(int argc, char *argv[], char *envp[]) {
// 遍历并打印 envp 数组中的每一个字符串
for (char **env = envp; *env != NULL; env++) {
printf("%s\n", *env);
}
return 0;
}
输出如下:
一大堆环境变量就出来了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix