main函数中两个参数的用法总结

1、定义 
C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
int main (int argc,char *argv[]){…}或者 
int main (int argc,char **argv){…} 
其中第一个表示参数的个数;第二个参数中argv[0]为自身运行目录路径和程序名,argv[1]指向第一个参数、argv[2]指向第二个参数…… 
完整程序如下:

 

 
  1. #include<iostream>

  2. #include<string>

  3.  
  4. using namespace std;

  5.  
  6. int main(int argc, char **argv)

  7. {

  8. string str;

  9. for(int i=0;i!=argc;++i)

  10. {

  11. cout<<"arg["<<i<<"]"<<argv[i]<<endl;

  12. }

  13.  
  14. system("pause");

  15. return 0;

  16. }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15


 

2、如何执行 
由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传 送到main的形参中去,具体操作如下: 
首先在C++中完成编译之后,然后在dos命令窗口下切换到.exe执行文件所在的文件夹(dos下如何切换目录见DOS中切换盘符及目录),再在该路径下输入带参数的命令:XXX.exe a b c …即可得到输出。

3、练习题 
不合法的main函数命令行参数表示形式是 
(A) main(int a,char *c[]) (B) main(int arc,char **arv) 
(C) main(int argc,char *argv) (D) main(int argv,char *argc[])

分析:main的第2个参数应该为一个字符数组指针,B的第二个参数是一个指向字符的指针的指针,也就是一个字符串数组; 
C的第二个参数是一个指向字符的指针,也就是一个字符串. 
char **argv或者char *argv[]是个二维数组,也可以理解为一个存放字符指针的数组—字符指针数组。每个元素存放一个字符指针,而字符指针又是可以指向一个字符串的,这n个字符串分别由argv[0]~~~argv[n]来指向. 
这个就是指针数组,不是别的,特别不是二维数组。 
综述,答案为C。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值