main(int argc,char *argv[ ])

1.argc为整数

2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[][]   ,argv是一个指针数组

 注:main()括号内是固定的写法。

3.下面给出一个例子来理解这两个参数的用法:

 假设程序的名称为prog,

   当只输入prog,则由操作系统传来的参数为:

   argc=1,表示只有一程序名称。

   argc只有一个元素,argv[0]指向输入的程序路径及名称:./prog

   当输入prog para_1,有一个参数,则由操作系统传来的参数为:

   argc=2,表示除了程序名外还有一个参数。 

   argv[0]指向输入的程序路径及名称。

   argv[1]指向参数para_1字符串。

   当输入prog para_1 para_2 有2个参数,则由操作系统传来的参数为:

   argc=3,表示除了程序名外还有2个参数。

   argv[0]指向输入的程序路径及名称。

   argv[1]指向参数para_1字符串。

   argv[2]指向参数para_2字符串。

4.void    main(    int    argc,    char    *argv[]    ) 

   char    *argv[]    :    argv 是一个指针数组,他的元素个数是argc,存放的是指向每一个参数的指针

5.举例如下

 /*************************************************************************
> File Name: read_main_param.c
> Author: Mr.Yang
> Purpose:读取主函数中的参数
> Created Time: 2017年06月01日 星期四 09时46分38秒
************************************************************************/ #include <stdio.h>
#include <stdlib.h> int main(int argc,char *argv[])
{
printf("%s\n",argv[]);//读取可执行程序(包括路径) /*读取参数*/
int i = ;
while(i < argc)
{
printf("%s\n",argv[i]);
i++;
}
//说明在dos和unix环境下,用""扩起来的表示其是一个字符串,代表着一个参数
return ;
}

参考:http://blog.csdn.net/yukiooy/article/details/4682989(可点击链接查看详细说明和相关举例)

c语言中命令行参数argc,argv[]详解的更多相关文章

  1. Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

    简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务,有的小伙伴或者童鞋们乍一听可能不信,或者会问如何通过命令行启动appium服务呢?且听宏哥一一道来. 一睹为快 其实相当的简单,不看不知 ...

  2. C语言/Linux命令行参数argc、argv[ ]详解

    1.void main(int argc,char *argv[]) argv[]:表示的是一个指针数组,一共有argc个元素,其中存放的是指向每一个参数的指针. argc:参数个数 2.以Linux ...

  3. python中命令行参数

    python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 le ...

  4. Perl的命令行参数和ARGV

    程序名:$0 $0表示当前正在运行的Perl脚本名.有3种情况: 如果执行方式为perl x.pl,则$0的值为x.pl而非perl命令本身 如果执行方式为./x.pl,则$0的值为./x.pl 如果 ...

  5. Python命令行参数sys.argv[]

    学习C语言的时候就没弄明白命令行参数的用法,在学习Pyton 的时候又遇到了命令行参数,在这里稍微学习了一下,稍微明白了一些在这里做个记录方便后面回顾复习. Sys.argv[]是用来获取命令行参数的 ...

  6. Perl中命令行参数以及打开管道文件

    打开管道文件   Linux提供了管道机制,可以方便应用程序之间的数据传递.在Perl中,扣开和使用管道可采用如下形式的open函数:   open(Filehandle,”丨 CMD”);   其中 ...

  7. [Objective-C语言教程]命令行参数(23)

    执行时,可以将一些值从命令行传递给Objective-C程序. 这些值称为命令行参数,很多时候它们对程序很重要,特别是当想要从外部控制程序而不是在代码中对这些值进行硬编码时就很有用了. 命令行参数使用 ...

  8. C语言讲解命令行参数

    命令行(command line):是在命令行环境中,用户为运行程序输入命令的行. 命令行参数(command-line argument): 是同一行的附加项. C编译器允许main()没有参数或者 ...

  9. [日常] Go语言圣经-命令行参数

    1.编译 go build hello.go 2.go get gopl.io/ch1/helloworld 命令,就会从网上获取代码,并放到对应目录中 下载的代码会放在$GOPATH/src/gop ...

随机推荐

  1. 028-PHP常用数学函数abs和acos和asin

    <?php print(abs(-));//打印绝对值 // 从 -1 到1打印acos函数的值 print("<TABLE BORDER=\"1\"> ...

  2. redis在.Net程序中使用

    1.设置访问密码 config 2.连接redis服务器 private static string redisHost = ConfigHelper.GetAppSetting("redi ...

  3. zerone 01串博弈问题

    近日领到了老师的期末作业 其中有这道 01 串博弈问题: 刚开始读题我也是云里雾里 但是精读数遍 “细品” 之后,我发现这是一个 “动态规划” 问题.好嘞,硬着头皮上吧. 分析问题:可知对每个人有两手 ...

  4. int, float, double 等转化为 string

    一般有以下两种方法: QVecotr<int> vec; QString(QByteArray().setNum(vec.at(3))) float f; QString("%1 ...

  5. scala 语言特性

    Scala 语言特性 Unit 表示无值, 等价于java, C++中的void Null 表示空值或空引用 Nothing 所有其他类型的子类型, 表示没有值 Any 所有类型的超类, 任何实例都属 ...

  6. mybatis今年笔记

    1.读取配置文件:用的就是解析Xml文件的技术 2.mybatis是支持自己写dao层的,但是没有必要. mybatis做的事情: 第一个创建代理对象,第二个在代理对象中调用方法. 3.相同的注解如果 ...

  7. Essay写作没灵感怎么办?

    进入6月了,童鞋们都在干啥呢?有人回国玩耍了,有人周游欧洲了,当然也有人还在悲催地上课写作业.但是呢不管你此刻在哪里,final essay或者dissertation都离你不远啦!可是可是,有些留学 ...

  8. c# 循环界面控件

    在 Winform 开发中,窗体(Form)就像一个大容器,可以装各种各样的控件,包括 Panel控件.如果窗体是 Winform 中的最大的容器,那么 Panel控件可以算是老二,它专门用于软件界面 ...

  9. 2,The AudioContext was not allowed to start.

    The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on t ...

  10. python刷LeetCode:26. 删除排序数组中的重复项

    难度等级:简单 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外 ...