mafan88的个人空间 https://blog.eetop.cn/162539 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

main()函数参数说明!

已有 1286 次阅读| 2012-2-28 10:07 |个人分类:学习


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);
}
}
本程序是用指向指针的指针变量编程,输出多个字符串

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 6

    粉丝
  • 0

    好友
  • 15

    获赞
  • 6

    评论
  • 105786

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-11 17:39 , Processed in 0.017107 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部