C语言main的参数;argc与argv
目录
前言
什么是命令行参数
argc与argv
argc (Argument Count)
argv (Argument Vector)
示例
前言
在C语言中,
main
函数的标准形式通常有两种:int main(void)int main(int argc, char *argv[])
其中,
argc
和argv
是用于处理命令行参数的两个重要参数。本文将详细解释它们的含义和用法。
argc与argv
argc (Argument Count)
argc
是一个整数,表示传递给程序的命令行参数的数量。它至少为1,因为第一个参数总是程序的名称(即
argv[0]
)。例如,如果用户在命令行中输入
./my_program arg1 arg2
,那么argc
的值将是3。argv (Argument Vector)
argv
是一个指向字符指针的数组,每个指针指向一个字符串,表示一个命令行参数。
argv[0]
是程序的名称。
argv[1]
到argv[argc-1]
是传递给程序的实际参数。
argv[argc]
是一个空指针(NULL
),表示参数列表的结束。
什么是命令行参数
命令行参数(Command-Line Arguments)是在启动程序时通过命令行界面传递给程序的输入参数,通常由程序名称和参数列表组成,例如:
./my_program arg1 arg2 arg3
其中“./my_program”是程序名称;“arg1 arg2 arg3”是参数列表。
参数列表打印示例
示例代码
#include <stdio.h>int main(int argc, char *argv[]) {//打印参数个数printf("Number of arguments: %d\n", argc);//打印参数列表for (int i = 0; i < argc; i++) {printf("Argument %d: %s\n", i, argv[i]);}return 0; }
示例运行
./my_program arg1 arg2 arg3
示例输出
Number of arguments: 4 Argument 0: ./my_program Argument 1: arg1 Argument 2: arg2 Argument 3: arg3
命令行参数作用何在?
有了命令行参数的存在,用户就可以在运行程序时指定某些选项,从而使程序根据不同的输入执行不同的操作。
我举个好理解的例子:输入参数1就是会员身份运行程序,里面会多很多功能,输入参数2就是以会员身份运行程序,许多功能使用受限制。
利用命令行参数指定程序功能示例
#include <stdio.h> #include <string.h>int main(int argc, char *argv[]) {//输入的参数不符合要求,提示输入要求后直接退出运行if (argc != 2){printf("Usage:\n\t%s -number[1-2]\n", argv[0]);return 1;}//输入参数1,执行第一种功能if (strcmp("-1", argv[1]) == 0){printf("function 1\n");}//输入参数2,执行第二种功能else if (strcmp("-2", argv[1]) == 0){printf("function 1\n");}//输入的参数不符合要求,提示输入要求后直接退出运行else{printf("unknown!\n");printf("Usage:\n\t%s -number[1-2]\n", argv[0]);return 1;}return 0; }