`
小鑫的java
  • 浏览: 142959 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

main函数的参数

阅读更多

 

main函数的参数

  我们经常用的main函数都是不参数的。因此main 后的括号都是空括号。实际上,main函数可以参数,个参数可以认为 main函数的形式参数。Cmain函数的参数只能有两个, 习惯两个参数写argcargv。因此,main函数的函数可写 main (argc,argv)还规argc(第一个形参)是整型,argv( 第二个形参)是指向字符串的指。加上形参明后,main函数的函数头应 
main (argc,argv)
int argv;
char *argv[];
或写成:

main (int argc,char *argv[])
  由于main函数不能被其它函数用, 因此不可能在程序内部取得实际值。那,在何值赋main函数的形参呢? 实际,main函数的参数是从操作系命令行上得的。当我要运行一个可行文件,在DOS提示符下入文件名,再实际参数即可把送到main的形参中去。

  DOS提示符下命令行的一般形式 C:\>行文件名 参数 参数……; 但是应该注意的是,main 的两个形参和命令行中的参数在
位置上不是一一对应的。因,main的形参只有二个,而命令行中的参数个数原上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数)argc是在入命令行由系实际参数的个数自动赋予的。例如有命令行 C:\>E6 24 BASIC dbase FORTRAN由于文件名E6 24本身也算一个参数,所以共有4个参数,因此argc取得的值为4argv参数是字符串指,其各元素值为命令行中各字符串(参数均按字符串)的首地址。 度即参数个数。数元素初由系动赋予。其表示如6.8所示:
main(int argc,char *argv){
while(argc-->1)
printf("%s\n",*++argv);
}
本例是示命令行中入的参数如果上例的可行文件名e24.exe,存放在A驱动器的内。
因此入的命令行 C:\>a:e24 BASIC dBASE FORTRAN 
运行

BASIC
dBASE
FORTRAN
  行共有4个参数,mainargc的初4argv4个元素分4个字符串的首地址。while句,一次 argv1,当argv等于1停止循,共循三次, 因此共可出三个参数。在printf函数中,由于打印*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、 三次循打印后二个字符串。而参数e24是文件名,不必出。

  下例的命令行中有两个参数,第二个参数20为输入的n。在程序中*++argv值为字符串“20”,然后用函数"atoi"把它换为整型作while句中的循量,20个偶数。
#include"stdlib.h"
main(int argc,char*argv[]){
int a=0,n;
n=atoi(*++argv);
while(n--) printf("%d ",a++*2);
}
  本程序是从0n个偶数。指向指的指针变量如果一个指针变量存放的又是另一个指针变量的地址, 个指针变指向指的指针变量。

  在前面已绍过,通针访问变量称为间访问 间访。由于指针变量直接指向量,所以称为单级间访 而如果通指向的指针变量来访问变构成了二或多级间访。在C言程序中,对间访数并未明确限制, 但是间访级数太多不容易理解解,也容易出,因此,一般很少超级间访 指向指的指针变明的一般形式 
明符** 针变量名;
 
例如: int ** pp; 表示pp是一个指针变量,它指向另一个指针变量, 个指针变量指向一个整型量。下面一个例子来这种关系。

main(){
int x,*p,**pp;
x=10;
p=&x;
pp=&p;
printf("x=%d\n",**pp);

  上例程序中p 是一个指针变量,指向整型量xpp也是一个指针变量, 它指向指针变p。通pp访问x的写法是**pp。程序最后x值为10。通上例,者可以学指向指的指针变量的明和使用方法。

  下述程序中首先定义说明了指ps并作了初始化赋值 明了pps是一个指向指的指针变量。在5次循中, pps 取得了ps[0]ps[1]ps[2]ps[3]ps[4]的地址(6.10所示)。再通过这些地址即可找到字符串。
main(){
static char *ps[]={ "BASIC","DBASE","C","FORTRAN",
"PASCAL"};
char **pps;
int i;
for(i=0;i<5;i++){
pps=ps+i;
printf("%s\n",*pps);
}
}
本程序是用指向指的指针变程,出多个字符串

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics