C 语言支持从 CLI(指令行)传入参数给 main() 函数,多个命令行参数之间用空格分隔,但是如果参数本身带有空格,那么就使用双引号或单引号。
C 语言的 main 函数是程序的入口函数,它可以有两种形式的参数:
无参数形式:main 函数的原型可以是 int main(void)。这表示不接受任何参数,程序执行时不需要从命令行传递参数给 main 函数。
带参数形式:main 函数的原型可以是 int main(int argc, char *argv[])。其中,argc 表示命令行参数的个数,而 argv 是一个字符串指针数组,每个元素都是一个命令行参数的字符串。
argc 标识传入的参数个数。如果没有提供任何参数,argc 将被设置为 1;否则,argc 将被设置为传入的参数个数加 1。argv[0] 通常是程序的名称或路径的字符串。argv[1] 到 argv[argc - 1] 是命令行传递给程序的参数,以空格分隔。 值得注意的是,也可以使用 char **argv 来代替 char *argv[] 形参,两者具有相同的类型含义。因为数组变量名 argv 就是指向 argv[] 数组的第一个元素的指针,同时又因为第一个元素的数值就是一个指针,所以此时的数组变量名 argv 的本质就是一个指针的指针(双重指针)。
下面是一个例子,演示如何使用带参数的 main 函数来接收命令行参数:
1 |
|
如果编译并运行这个程序,并在命令行中输入参数,例如 ./a.out arg1 arg2 3 arg4,则输出如下:
1 | number of params: 5 |
参考链接:https://is-cloud.blog.csdn.net/article/details/105347737