argv: 指针的指针

argc: 整数

char **argv or char *argv[] or char argv[][]

为了能形象的说明这两个参数的含义,我们先用一个实例来进行讲解:

假设程序的名称为test,当只输入test,则由操作系统传来的参数为:

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

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

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

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

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

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

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

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

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

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

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

以此类推………………

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

char *argv[]: argv是一个指针数组,元素个数是argc,存放的是指向每一个参数的指针,第一个元素即argv[0]为程序运行的全路径名,从二个元素(argv[1])开始,是每一个参数的名称,最后一个元素为NULL。总的来说,即:

* argv: 字符串数组

argv[0] 为程序运行的全路径名

argv[1] 为执行程序名后的第一个字符串;

argv[2] 为执行程序名后的第二个字符串;

...

argv[argc]为NULL。

int argc: 表示argv的大小,是实际参数个数+1,其中+1是因为argv[0]是编译后的可执行文件名

main() 参数 :

Turbo C2.0启动时总是把argc、argv、env(存放环境变量)这三个参数传递给main()函数, 可以在用户程序中说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为main()子程序的局部变量。

请注意: 一旦想说明这些参数, 则必须按argc, argv, env 的顺序, 如以下的例子:

main()

main(int argc)

main(int argc, char *argv[])

main(int argc, char *argv[], char *env[])

其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用argc, 而不

用argv[]的情况。

以下提供一样例程序EXAMPLE.EXE, 演示如何在main()函数中使用三个参数:

#i nclude <stdio.h>

#i nclude <stdlib.h>

main(int argc, char *argv[], char *env[])

{

int i;

printf( "These are the %d command- line arguments passed to

main:\n\n", argc);

for( i = 0; i <= argc; i++)

printf( "argv[%d]:%s\n", i, argv[i] );

printf( "\nThe environment string(s)on this system are:\n\n");

for( i = 0; env[i] != NULL; i++ )

printf( " env[%d]:%s\n", i, env[i] );

}

./EXAMPLE first "I’m a good boy" c "last " stop

注意: 可以用双引号括起内含空格的参数, 如本例中的: " argument with blanks"和"Last but one")。

结果是这样的:

These are the 6 command-linearguments passed to main:

argv[0]:./ EXAMPLE

argv[1]:first

argv[2]: I’m a good boy

argv[3]:c

argv[4]: last

argv[5]:stop

argv[6]:(NULL)

[转载]c语言中命令行参数argc,argv相关推荐

  1. c语言中命令行参数argc,argv[]详解

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

  2. c++笔记(1):C++中命令行参数argc,argc[ ]究竟是什么

    C++中命令行参数argc,argc[ ]究竟是什么 1.argc为整数 2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[][ ...

  3. Go语言中命令行参数的实现

    为什么80%的码农都做不了架构师?>>>    在写命令行程序时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自 ...

  4. 在c语言中命令行参数是什么,C语言命令行参数

    这是可能在命令行中的一些值传递给C程序执行.特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要. 命令行参数使用main()函数的参数,其 ...

  5. python 命令行参数-python中命令行参数

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

  6. c语言学习进阶-C语言带命令行参数的文件数据批量计算

    C语言带命令行参数的文件数据批量计算 (1)假设输入文件中的数据为多行整数,把数据文件命名为"InputData.txt",也可以命名为任意的文件名,尝试设计一个c 语言程序, 主 ...

  7. c语音学习进阶-C语言带命令行参数的程序设计

    C语言带命令行参数的程序设计 (1)深入理解并学习带命令行参数的程序设计方法,使用c 语言完成带命令行参数的科学计算程序,能从给定的任意文件名的文件当中输入数据,并能向给定的任意文件名的输出文件当中输 ...

  8. 命令行参数argc和argv的解释

    今日学习到K&R第5.10节,谈及命令行参数argc和argv,以下是本人的一些见解和思考. 在C语言环境中,main函数的括号里会有两个参数:argc和argv. 例如: int main( ...

  9. 文本编辑器中命令行参数的应用

    文章目录 1 文本编辑器中命令行参数的应用 1 文本编辑器中命令行参数的应用 我们要知道对于每一个应用程序我们都能够接收命令行参数,那么对于GUI系统中命令行参数如何传递到应用程序呢? 主要有如下两种 ...

  10. Ada语言中命令行使用

    Ada语言中命令行使用 要制作命令行程序,使用系统包ada.command_line .以下例程实现一个命令行程序. 命令如下:remove -iInputFileName -nCutOffNumbe ...

最新文章

  1. darknet53网络结构及配置文件对比
  2. sortingOrder,sortingLayer
  3. 除夕之夜快乐!自费送10个无人机给大家
  4. 东大教务处验证码破解
  5. web python pkcs11_使用pkcs11模块用公钥加密数据失败
  6. Python 凭什么打败 Java、C/C++,成为机器学习的唯一语言?
  7. git 远程代码回滚master
  8. luogu1984 烧水问题 (找规律)
  9. matlab给函数积分,MATLAB函数积分
  10. Python使用Hprose
  11. 深入理解计算机系统——地址翻译
  12. 谷歌浏览器字体最小12px
  13. 编写MTK6737平台的GPIO驱动例程(二)
  14. ASCII编码以及转换
  15. 计算机二级是wpsoffice高级应用吗,考计算机二级ms office高级应用但是自己电脑上office软件都是wps 这和word ppt excel 软件有区别吗...
  16. ChatGPT讲故事,DALLE-2负责画出来!两大AI合作出绘本!
  17. 健身与不健身五年后的差别?你可不能轻易忽视!
  18. 720phi10p 和 720p有什么区别_除了情怀还剩什么?索尼Z5 Compact评测
  19. 查看redis常用命令
  20. 全面理解DAO-Web3.0基本组织形式

热门文章

  1. TM数据单窗算法和单通道算法反演地表温度(IDL实现)
  2. Mybatis-逆向工程
  3. xml文件的根节点layout_width或者layout_height设置无效果的原因分析
  4. java中程序定义book类_Java基础_0302:类和对象
  5. 腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
  6. android动画之从源码角度分析动画原理
  7. 国庆在家太无聊, 用Java爬了上千张小姐姐照片...
  8. 弃用 Notepad++,还有5款更牛逼的选择!
  9. 我发现混的好的,都是挺能“吹牛逼”的
  10. 再见2018,你好2019