C语言中的 int main(int argc,char const *argv[])是什么意思?

作用

当主函数设置成如下样式时,可以从命令行传参给该主函数。

cpp 复制代码
int main(int argc,char const *argv[])

参数的含义

int argc:这个参数表示传递给程序的命令行参数的数量。它至少为1,因为argv0通常是程序的名字。

char const *argv\[\] 或 char *argv\[\]:这是一个指向字符指针的数组,用于存储命令行参数。argv0通常是程序的名字,argv1是第一个命令行参数,argv2是第二个命令行参数,依此类推。argv数组的最后一个元素后面是一个空指针,用于标识数组的结束。

案例

创建 example.c 文件:

c 复制代码
#include <stdio.h>  
  
int main(int argc, char const *argv[]) {  
    printf("程序名: %s\n", argv[0]);  
    printf("参数数量: %d\n", argc);  
    for (int i = 1; i < argc; i++) {  
        printf("参数 %d: %s\n", i, argv[i]);  
    }  
    return 0;  
}

编译:

bash 复制代码
gcc example.c -o example  
./example arg1 arg2 arg3

输出:

bash 复制代码
程序名: ./example  
参数数量: 4  
参数 1: arg1  
参数 2: arg2  
参数 3: arg3
相关推荐
geats人山人海28 分钟前
c# 第九章 record
开发语言·c#
早期的虫儿有鸟吃30 分钟前
vue2--Vuex 模块化
开发语言·前端·javascript
浪客川1 小时前
Android的SystemUI的启动流程简析
android·开发语言
-银雾鸢尾-1 小时前
C#中的抽象类与抽象方法
开发语言·c#
萧瑟余晖1 小时前
JDK 20 新特性详解
java·开发语言
benchmark_cc1 小时前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
2301_794461572 小时前
Activiti/BPMN 2.0 的 4 种网关
java·服务器·开发语言
147API2 小时前
Claude Tag 进入 Slack 后,团队智能体需要哪些任务与审计字段
java·开发语言·数据库
Helen_cai2 小时前
OpenHarmony 通用状态加载、空页面、错误兜底组件封装(全局业务通用 UI 组件 API23)
开发语言·ui·华为·php·harmonyos
熬夜苦读学习2 小时前
QT_信号和槽
开发语言·qt