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

作用

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

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

参数的含义

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

char const *argv[] 或 char *argv[]:这是一个指向字符指针的数组,用于存储命令行参数。argv[0]通常是程序的名字,argv[1]是第一个命令行参数,argv[2]是第二个命令行参数,依此类推。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
相关推荐
xyq20243 分钟前
Razor VB 循环
开发语言
古城小栈5 分钟前
Bun从Zig迁移至Rust:有何重大意义?
开发语言·后端·rust
薇茗8 分钟前
【初阶数据结构】 升沉有序的平仄 排序
c语言·数据结构·算法·排序算法
yoyo_zzm12 分钟前
五大编程语言对比:PHP、C、C++、C#、易语言
c语言·c++·php
lalala_Zou17 分钟前
某大厂后端一面
java·开发语言
W230357657317 分钟前
Linux C++ 基于 timerfd + epoll 实现高性能定时器队列(完整源码 + 超详细解析)
linux·开发语言·c++·线程池
WL_Aurora27 分钟前
Java技术体系:JDK、JRE、JVM的关系与演进(2026最新版)
java·开发语言·jvm
吃好睡好便好32 分钟前
在Matlab中绘制二维等高线图
开发语言·人工智能·学习·算法·matlab
wkj00133 分钟前
JavaScript模块化技术进程详解
开发语言·javascript·ecmascript
2zcode34 分钟前
基于Matlab元胞自动机模拟(CA)动态再结晶过程
开发语言·matlab·动态再结晶