main函数中的参数argv与argv[ ]的探讨

argv与argv[ ]的探讨


我们看一下下面的程序,这个程序可能对每一个初学C的学生并不陌生。
/*main.c*/
 #include<stdio.h>
 
 int main(int argc,char *argv[])
 {
  printf("hello wrold!\n");
  return 0;
 }
我们用gcc来运行一下这个程序:
 [root@localhost ~]# gcc main.c -o main
 [root@localhost ~]# ./main
 hello,wrold!
 
/*这个程序的功能只是输出 hello,wrold! 这句话。议论输出的结果是什么本身没什么意思,可是我们接下来要讨论的是 int argc,char *argv[] 这两个整型变量和字符型数组变量所表示的含义。接下来看下面的一段程序:*/
/*main.c*/
 #include<stdio.h>
 
 int main(int argc,char *argv[])
 {
  printf("argc=%d\n",argc);
  printf("argv[0]=%s\n",argv[0]);
  printf("argc[1]=%s\n",argv[1]);
  printf("argv[2]=%s\n",argv[2]);
  printf("argc[3]=%s\n",argv[3]);
  printf("hello wrold!\n");
  return 0;
 }
/*同样,我们用gcc来运行一下这个程序:*/
 [root@localhost ~]# gcc main.c -o main
 [root@localhost ~]# ./main a1 b2 c3
 argc=4
 argv[0]=./main
 argv[1]=a1
 argv[2]=b2
 argv[3]=c3
 hello,wrold!
/*对比一下这两个程序,我们是不是下面的程序只是在多了几个printf()函数,printf()函数输出的正好就是main()函数中的参数int argc 和char *argv[]呢?对,在运行时候的这一段大家看到没有[root@localhost ~]# ./main a1 b2 c3,和上一个程序的运行有不同,在这里加了参数项 a1 b2 c3,这几个参数项在printf中有打印出来。然后我们来看为什么argc=4,argc表示的是统计用户在运行该程序是自己追加的字符串的个数,而argv[]则是把追加的字符串打印出来,gcc在打印的时候会默认为./main也是用户追加的字符串,所以统计出来的是argc=4,而不是3*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值