你了解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++中直接点击编译运行,如图:
    img

    点击后直接跳出如下内容:
    img

  • 上面的操作不太对,没有使用命令行参数。

    在DevC++中,我们可以在运行程序时添加命令行参数。

    具体操作步骤为:
    先点击运行,然后在弹出的窗口中点击运行,再点击运行参数,如图:
    img

    然后在弹出的窗口中输入参数,如图:
    img

    点击确定后,再编译运行,程序会输出如下内容:
    img

    从输出结果,我们可以看到是参数以空格分隔的。

对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;
}

输出如下:

img

一大堆环境变量就出来了。

posted @   hisun9  阅读(335)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示