int argc
:表示命令行参数的数量。argc
至少为1,因为第一个参数总是程序的名称。char* argv[]
:是一个字符指针数组,用于存储每个命令行参数的字符串。argv[0]
是程序的名称,argv[1]
是第一个参数,依此类推。argv[argc]
是一个空指针(NULL
),用于标记数组的结束。-
例子
假设你有一个名为
example
的程序,并且你想从命令行向它传递一些参数。你可以在终端(或命令提示符)中这样调用它: -
./example -a 123 -b hello 在这个例子中:
argc
的值为 5,因为传递给程序的参数数量是 4(-a
,123
,-b
,hello
),加上程序名称example
本身,总共是 5。argv
数组的内容如下:argv[0]
是"./example"
(程序名称,可能包含路径)。argv[1]
是"-a"
。argv[2]
是"123"
。argv[3]
是"-b"
。argv[4]
是"hello"
。argv[5]
是NULL
,表示数组的结束。-
代码示例
下面是一个简单的C程序,它打印出传递给它的所有命令行参数:
-
#include <stdio.h>int main(int argc, char* argv[]) {printf("Program name: %s\n", argv[0]);printf("Number of arguments: %d\n", argc - 1); // 减去1,因为argv[0]是程序名称for (int i = 1; i < argc; i++) {printf("Argument %d: %s\n", i, argv[i]);}return 0; }
编译过程见该博客