C++的main函数中的参数有什么用?

经常看到有参数的main函数的形式,比如
int main(int argc, char *argv[]),或者还有其它的形式吗?
这跟int main(){}没有参数的函数相比有些什么特点。
像那些有参数的文件,怎样发挥参数的作用,具体是怎么操作的?
本人一直都是学标准C++,想了解一下这个不同之处,谢谢。

  C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。

  int main(void)//整数类型主函数(无类型)
  {
  ...
  y1=f1(x1,x2);//赋值过程
  ...
  }
  
  f1(int a,int b)//f1(整数类型a,整数类型b)
  {
  //百度百科示例代码.....
  Y2=f2(x3,x4);//赋值过程
  //百度百科示例代码
  }
  f2(int m,int n)//f2(整数类型m,整数类型n)
  {
  //百度百科示例代码
  }
  

  在前面课程的学习中,对main()函数始终作为主调函数处理,也就是说,允许main()调用其它函数并传递参数。事实上,main()函数既可以是无参函数,也可以是有参的函数。对于有参的形式来说,就需要向其传递参数。
  我们先看一下main()函数的带参的形式:

  int main(int argc,char **argv)//整数类型主函数(整数类型统计参数个数,字符类型*数组指针至字符[])
  {
  //百度百科示例代码......
  }
  

  从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件(对windows操作系统而言),这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了。
  在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。
  其格式为:
  命令参数1参数2....参数nt;
  此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
  命令行与main()函数的参数存在如下的关系:
  设命令行为:program str1 str2 str3 str4 str5
  其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6]。‍
  数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。
‍  

  

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-09-09
我学C的时候,讲到MAIN函数里面的参数时,老师说,等以后用到了我们再讲,不过好像一直没用到过,所以就没有讲。
第2个回答  2007-09-09
昏了,你学C++多久阿?
这是最基本的传参阿。当MAIN里面需要用到外部参数数据传入的时候就要在括号里加参数了。
不如你要比较3个数大小,而这3个数不是预先写在程序里的,而需要运行后再给出的,那么就需要把参数穿进去了。
第3个回答  2007-09-11
当你在CMD 命令行输入的时候,有时候需要带参数
比如你打: XXXX.exe /a /b...

这个后面的/a /b等等内容,就是main函数用来接收的参数,你就可以自己根据参数的不同,来运行不同的代码了。就这么简单。
第4个回答  推荐于2016-08-08
除了void就是一个int一个char数组

#include <stdio.h>
#include <conio.h>

int main(int argc, char* argv[]) {

printf("%d - %s", argc, argv[argc - 1]);

getch();

return 0;
}

试试这个
test Andy本回答被提问者采纳
相似回答