C语言–main函数的两个参数argc和argv

  • Post author:
  • Post category:其他


理论部分

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函数输入参数:

方法:

  1. windows+R(快捷键)打开命令行->输出cmd->回车
  2. 输入上面第二步用code blocks软件生成的.exe文件的路径名
  3. 依次输入参数(注意空格的使用),
  4. 回车运行

实验结果:



版权声明:本文为tyustli原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。