main()函数参数说明!

本文详细解析了main函数的参数argc和argv,并通过示例展示了如何在程序中使用这些参数进行操作。同时,介绍了指向指针的指针变量的概念及其在C语言中的应用。
部署运行你感兴趣的模型镜像

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

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值