argc argv的使用

 
在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。
       * argc:    整数, main()的命令行参数个数。
       * argv:    字符串数组。
                argv[0] 为程序运行的全路径名
                argv[1] 为在DOS命令行中执行程序名后的第一个字符串;
                argv[2] 为执行程序名后的第二个字符串;
                ...
                argv[argc]为NULL。
       *env:    字符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符
串。其中ENVVAR为环境变量。value 为ENVVAR的对应值
#include <stdlib.h>                                              
#include <stdio.h>                                               
       main(int argc, char *argv[], char *env[])                 
       {                                                         
            int i;                                               
            printf("%d/n", argc);       /* 为什么它的输出是 1, 它到底
是定义什么的,我看不明上面的解释*/                                   
            for(i=0; i<=argc; i++)                               
              printf("argv[%d]:%s/n", i, argv[i]);               
            for(i=0; env[i]!=NULL; i++)                          
                 printf(" env[%d]:%s/n", i, env[i]);              
        }                                                         

argc, argv, env是在main()函数之前被赋值的,编译器生成的可执行文件,main()不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。
printf("%d/n",argc) //这儿输出1是正确的,因为可执行文件名算第一个参数,即argv[0] == 可执行文件名
argc包含命令行选项的个数,argv包含argc个C风格字符串,代表由空格分开的命令选项比如说 你输入可执行程序的名字 work.exe 后面跟上 -d -o....
那么argv[0] = work.exe argv[1] = -d    argv[2] = -o
你可以让他们输出看看
给一个例子:
#include <stdio.h>;

int main(int argc, char *argv[])
{
printf("%d/n",argc);
while(argc)
printf("%s/n",argv[--argc]);
return 0;
}

假设将其编译为test.exe,
在命令行下,
test hello
得到的输出结果为
2
hello
test

main(int argc, char *argv[]),其中argc是指变量的个数,本例中指test和hello,即为2,
argc至少为1,原因就不用我说了吧
argv是一个char *的数组,其中存放变量的内容,此处
argv[0]中存放test,argv[1]存放hello
这个例子真的太经典了,所以留了下来。对于理解argv[]函数是很管用的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值