C语言main()函数
argc
(argument count
)
在C或C++程序中,argc
(argument count
的缩写)是一个由程序运行时环境自动提供的整数,用于指示传递给main
函数的命令行参数的数量。因此,不需要(也不应该)手动为argc
赋值。
argv
(argument vector
)
当从命令行运行程序时,操作系统会解析命令行上的参数,计算它们的数量,并将这个数量作为argc
的值传递给main
函数。同时,操作系统还会创建一个字符指针数组argv
,用于存储每个参数的字符串表示,并将这个数组的指针传递给main
函数。
示例
以下是一个简要的有参示例(无参就不说了),说明如何在命令行上运行程序并观察argc
和argv
的行为:
-
将以下C代码保存到一个名为
main.c
的文件中:c#include <stdio.h> int main(int argc, char* argv[]) { //char* argv[]等价于 char** argv printf("argc = %d\n", argc); for (int i = 0; i < argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); } return 0; }
-
使用C编译器编译这个文件,例如使用
gcc
:bashgcc -o myprogram main.c
-
在命令行上运行生成的可执行文件,并传递一些参数:
bash./myprogram Hello World 1024
-
观察输出:
argc = 4 argv[0] = ./myprogram argv[1] = Hello argv[2] = World argv[3] = 1024
在这个例子中,argc
的值是4,因为程序名(./myprogram
)和三个参数(hello
、world
、123
)都被计算在内。argv
数组包含了这些参数的字符串表示,其中argv[0]
是程序名,argv[1]
到argv[3]
是传递的参数。
注意:不需要手动为argc
赋值,它是由运行时环境根据传递给程序的命令行参数的数量自动设置的。