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
相关推荐
ShineWinsu12 小时前
对于C++:模版进阶的解析
开发语言·c++·面试·笔试·求职·进阶·模版
啊哈哈1213813 小时前
Python基本语法复盘笔记1(输入输出/字符串/列表)
开发语言·笔记·python
qq_1508419913 小时前
3天基于VS2026的C#编程入门及动态调用CH341DLLA64读写I2C从机
开发语言·c#
祈安_14 小时前
深入理解指针(一)
c语言·前端
Tony Bai14 小时前
Go 1.26 :go mod init 默认行为的变化与 Go 版本管理的哲学思辨
开发语言·后端·golang
xyq202414 小时前
WebForms SortedList 深度解析
开发语言
Hx_Ma1614 小时前
测试题(三)
java·开发语言·后端
CHANG_THE_WORLD15 小时前
深入理解C语言指针:从源码到汇编的彻底剖析
c语言·开发语言·汇编
星火开发设计15 小时前
序列式容器:deque 双端队列的适用场景
java·开发语言·jvm·c++·知识
码农葫芦侠15 小时前
Rust学习教程2:基本语法
开发语言·学习·rust