c中main函数的参数篇

对于一个标准的代来说如下

#include <stdio.h>

int main(int argv, char* argc[])
{
        printf("argv is %d\n",argv);
        return 0;
}

main中包含两个参数:

如上的代码则会打印出


则会输出argv is 1

那么问题来了 为什么是1呢?可以是其他的数值吗?答案是可以的。

其实对于linux操作系统来说,命令也可以是c语言编写的程序,既然是c编写的程序那么也有返回值的。

如何证明呢?

举个简单的例子。

如图当我们每加一个参数的时候对于同一个程序来说,argv的值都会加1;

对于argv来说,当命令执行的时候带有n个参数那么这个值就是n+1.

那么问题又来了,我们知道有几个参数,但是问题又来了。我们还要知道 每个参数是什么啊,

ok接下来我们编写另外一段代码

main3.c文件

#include <stdio.h>


int main(int argv, char* argc[])
{
printf("argv is %d\n",argv);
int i;
for(i=0;i<argv;i++){
printf("argc[%d] is %s\n",i,argc[i]);
}
return 0;
}

编译生成m3.out

执行如下的命令

执行的命令总共是5段。此时argv是5

后面指针数组 每一个元素则代表我们输入命令时的一个参数。

那么这些参数是很有用的。比如对于ls命令来说。

ls命令实质上也是c编写的一段c程序

此段c代码根据传入的参数。比如传入-a参数ls代码则根据a参数在ls程序里做判断 然后显示所有的文件。

传入-l参数则显示详细的文件参数。

这对编写c的代码非常重要。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值