main()函数参数说明!
2012-10-25 11:10
489 查看
main()函数参数说明!
int main(int argc,char *argv[]) 是 UNIX 和 Linux 中的标准写法,而 int main() 只是 UNIX 及 Linux 默许的用法..argc是argument count的缩写,表示参数的个数,argv是argument value的缩写,表示参数的值
main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。
main(int argc,char**argv)
argv为指针的指针
argc为整数
char**argv or: char*argv[ ] or: char argv[ ][ ]
main0.c
int main(int argc, char *argv[])
{
int i = 0;
printf("argc: %d\n", argc);
for(i = 0; i < argc; i++)
{
printf("Arg %d : %s\n", i + 1, argv[i]);
}
return 0;
}
gcc -o main0 main0.c
# ./main0
argc:1
arg 1 :./main0
# ./main0 aa bbb
argc:3
arg 1 :./main0
arg 2 :aa
arg 3 :bbb
需要在程序里面使用这些参数的话,可以模仿上面的代码。
main1.c
#inculde <stdio.h>
main(int argc,char *argv[]){
while(argc-->1)
printf("%s\n",*++argv);
}
本例是显示命令行中输入的参数。
因此输入的命令行为: gcc -o main1 main1.c
./main1 aa bbb cccc
则运行结果为:
aa
bbb
ccc 该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次 argv值减1,当argv等于1时停止循环,共循环三次, 因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、 三次循环分别打印后二个字符串。而参数main1是文件名,不必输出。
执行./main1 argv[0]为./main1 ;执行./main1 aa bbb cccc ,argc 的值为4 ,argv[0]为./main1 、
argv[1]为 aa ,。。。。。。
下例的命令行中有两个参数,第二个参数10即为输入的n值。在程序中*++argv的值为字符串“20”,然后用函数"atoi"把它换为整型作为while语句中的循环控制变量,输出10个偶数。
#inculde <stdio.h>
#include"stdlib.h"
main(int argc,char*argv[]){
int a=0,n;
n=atoi(*++argv);
while(n--) printf("%d ",a++*2);
} 本程序是从0开始输出n个偶数。 gcc -o main2 main2.c
./main2 10
指向指针的指针变量如果一个指针变量存放的又是另一个指针变量的地址, 则称这个指针变量为指向指针的指针变量。
通过指针访问变量称为间接访问, 简称间访。由于指针变量直接指向变量,所以称为单级间访。 而如果通过指向指针的指针变量来访问变量则构成了二级或多级间访。
指向指针的指针变量说明的一般形式为:int ** pp; 表示pp是一个指针变量,它指向另一个指针变量, 而这个指针变量指向一个整型量。
example: main3.c
main(){
int x,*p,**pp;
x=10;
p=&x;
pp=&p;
printf("x=%d\n",**pp);
} aa
上例程序中p 是一个指针变量,指向整型量x;pp也是一个指针变量, 它指向指针变量p。通过pp变量访问x的写法是**pp。程序最后输出x的值为10。通过上例,可以学习指向指针的指针变量的说明和使用方法。
main4.c
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);
}
}
本程序是用指向指针的指针变量编程,输出多个字符串
相关文章推荐
- main函数参数argc,argv说明
- main 函数的参数说明
- c语言中 main()函数的参数说明
- Windows环境下main()函数传入参数
- c++ main()函数参数说明:int main(int argc, char * argv[])
- python 函数参数的传递(参数带星号的说明) 元组传递 字典传递
- 说明指针作为函数参数(一)
- void声明空参数表,main()函数的参数也可以用void填充表示没有参数
- C++学习笔记1(带参数的main( )函数)
- python函数传递带*的参数说明
- lhgdialog主调函数参数说明:
- <%=CutStr(trim(rs("p_name")),1,8)%> CutStr函数参数说明
- python 函数参数的传递(参数带星号的说明)
- 关于CONVERT(varchar(10),date,111)函数最后一个参数说明
- 菜单函数stm_aix stm_bpx stm_bm stm_ai stm_bp 的参数说明
- php curl简单采集图片生成base64编码(并附curl函数参数说明)
- C 中 main 函数的参数
- main 函数的2个参数
- owa_util.get_cgi_env 函数参数说明.
- 转:python 函数参数的传递(参数带星号的说明)