int main( int argc, char* argv[])参数解析
在一些c语言的树种,经常看到有int main( int argc, char* argv[])这种写法,而在 C Premier Plus中,对这两个参数的意义和描述非常少,在 linux 系统命令行中却经常看到。通过查阅一些资料,基本上了解了这些参数的作用。
一、argc、argv的具体含义
argc和argv参数在用命令行编译程序时有用。main( int argc, char* argv[], char **env ) 中
第一个参数,int型的argc,为整型,用来统计程序运行时发送给main函数的命令行参数的个数,在VS中默认值为1。
第二个参数,char*型的argv[],为字符串数组,用来存放指向的字符串参数的指针数组,每一个元素指向一个参数。各成员含义如下:
argv[0] 指向程序运行的全路径名
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
argv[3] 指向执行程序名后的第三个字符串
argv[argc] 为NULL
第三个参数,char**型的env,为字符串数组。env[]的每一个元素都包含ENVVAR=value形式的字符串,其中ENVVAR为环境变量,value为其对应的值。平时使用到的比较少。
二、使用visual studio 进行测试
测试代码主要功能是获取输入参数个数,并打印:
#include <stdio.h>
int main(int argc, char* argv[])
{
int i;
printf("input %d arguments\n", argc);
for (i = 0; i <= argc; i++)
{
printf("argument %d = %s\n", i, argv[i]);
}
(void)getchar();
return 0;
}
三、windows 命令行测试
编译上述程序后,debug中的文件列表如下:
然后,使用命令行运行程序,并输入一些参数,观察程序输出结果:
可以看到,我们测试时输入了 5 个参数,即: .\file_Test.exe aa bb cc dd ,分别为可执行文件路径和 4 个参数。
输出结果中,显示输入了 5 个参数;
数组[0] 存储 exe 路径;
数组[1] 存储输入参数1;
数组[2] 存储输入参数2;
数组[3] 存储输入参数3;
数组[4] 存储输入参数4;
数组[5] 存储 NULL;
推荐阅读
-
int main(int argc,char* argv[ ]) 详解
-
int main(int argc,char *argv[])参数说明
-
关于int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
-
main函数的带参启动--int main(int argc,char* argv[])
-
【C语言细节】int main(int argc, char** argv)里面的参数你了解吗?
-
关于int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
-
int main( int argc, char* argv[])参数解析
-
main(int argc, char** argv) 参数的含义
-
关于int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
-
ca59a_c++_函数_main函数处理命令行选项int argc ,char *argv[]