理论部分
C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。
- 第一个形参:argc(arguments count参数数)必须是整型变量
- 第二个形参:argv(arguments value/vector参数值)必须是指向字符串的指针数组。
所以main函数的函数应写为以下两种形式的一种:
- int main(int argc,char *argv[]){…}
- int main (int argc,char **argv){…}
第一个参数argc表示向main函数传递的参数的个数,但是它实际上要比你在命令行里输入的数据多一个,因为第一个参数它保存了该程序的路径名,也就是说,如果你向命令行输入3个数,则argc实际上等于4;
第二个参数argv保存命令行输入的参数值
argv[0]指向程序自身运行目录路径和程序名,
argv[1]指向程序在DOS命令中执行程序名后的第一个字符串
argv[2]指向第二个字符串
…….
argv[argc] 为NULL
代码部分
- 未给main函数输入任何参数:
#include <stdio.h>
int
main(int argc, char *argv[])
{
printf("%d\n", argc); /*此时输入的参数是0 所以输出的argc是1*/
printf("%s\n", argv[0]); /*输出程序的路径地址*/
system("pause");
return 0;
}
/**程序输出结果:
***************
*1
*C:\Users\BA\Desktop\Project\Mian\bin\Debug\Mian.exe
***************
*/
- 在code blocks中给main函数输入三个参数:
方法:Project->Set program ‘s arguments… 依次输入三个参数以空格分离,单击OK
#include <stdio.h>
int
main(int argc, char *argv[])
{
printf("%d\n", argc);
printf("%s\n", argv[0]);
printf("%s\n", argv[1]);
printf("%s\n", argv[2]);
printf("%s\n", argv[3]);
system("pause");
return 0;
}
/**程序输出结果:
***************
*4
*C:\Users\BA\Desktop\Project\Mian\bin\Debug\Mian.exe
*argument1
*argument2
*how output
***************
*/
- 在windows命令行中给main函数输入参数:
方法:
- windows+R(快捷键)打开命令行->输出cmd->回车
- 输入上面第二步用code blocks软件生成的.exe文件的路径名
- 依次输入参数(注意空格的使用),
- 回车运行
实验结果:
版权声明:本文为tyustli原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。