[转载]c语言中命令行参数argc,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相关推荐
- c语言中命令行参数argc,argv[]详解
argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...
- c++笔记(1):C++中命令行参数argc,argc[ ]究竟是什么
C++中命令行参数argc,argc[ ]究竟是什么 1.argc为整数 2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[][ ...
- Go语言中命令行参数的实现
为什么80%的码农都做不了架构师?>>> 在写命令行程序时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自 ...
- 在c语言中命令行参数是什么,C语言命令行参数
这是可能在命令行中的一些值传递给C程序执行.特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要. 命令行参数使用main()函数的参数,其 ...
- python 命令行参数-python中命令行参数
python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令 ...
- c语言学习进阶-C语言带命令行参数的文件数据批量计算
C语言带命令行参数的文件数据批量计算 (1)假设输入文件中的数据为多行整数,把数据文件命名为"InputData.txt",也可以命名为任意的文件名,尝试设计一个c 语言程序, 主 ...
- c语音学习进阶-C语言带命令行参数的程序设计
C语言带命令行参数的程序设计 (1)深入理解并学习带命令行参数的程序设计方法,使用c 语言完成带命令行参数的科学计算程序,能从给定的任意文件名的文件当中输入数据,并能向给定的任意文件名的输出文件当中输 ...
- 命令行参数argc和argv的解释
今日学习到K&R第5.10节,谈及命令行参数argc和argv,以下是本人的一些见解和思考. 在C语言环境中,main函数的括号里会有两个参数:argc和argv. 例如: int main( ...
- 文本编辑器中命令行参数的应用
文章目录 1 文本编辑器中命令行参数的应用 1 文本编辑器中命令行参数的应用 我们要知道对于每一个应用程序我们都能够接收命令行参数,那么对于GUI系统中命令行参数如何传递到应用程序呢? 主要有如下两种 ...
- Ada语言中命令行使用
Ada语言中命令行使用 要制作命令行程序,使用系统包ada.command_line .以下例程实现一个命令行程序. 命令如下:remove -iInputFileName -nCutOffNumbe ...
最新文章
- darknet53网络结构及配置文件对比
- sortingOrder,sortingLayer
- 除夕之夜快乐!自费送10个无人机给大家
- 东大教务处验证码破解
- web python pkcs11_使用pkcs11模块用公钥加密数据失败
- Python 凭什么打败 Java、C/C++,成为机器学习的唯一语言?
- git 远程代码回滚master
- luogu1984 烧水问题 (找规律)
- matlab给函数积分,MATLAB函数积分
- Python使用Hprose
- 深入理解计算机系统——地址翻译
- 谷歌浏览器字体最小12px
- 编写MTK6737平台的GPIO驱动例程(二)
- ASCII编码以及转换
- 计算机二级是wpsoffice高级应用吗,考计算机二级ms office高级应用但是自己电脑上office软件都是wps 这和word ppt excel 软件有区别吗...
- ChatGPT讲故事,DALLE-2负责画出来!两大AI合作出绘本!
- 健身与不健身五年后的差别?你可不能轻易忽视!
- 720phi10p 和 720p有什么区别_除了情怀还剩什么?索尼Z5 Compact评测
- 查看redis常用命令
- 全面理解DAO-Web3.0基本组织形式
热门文章
- TM数据单窗算法和单通道算法反演地表温度(IDL实现)
- Mybatis-逆向工程
- xml文件的根节点layout_width或者layout_height设置无效果的原因分析
- java中程序定义book类_Java基础_0302:类和对象
- 腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
- android动画之从源码角度分析动画原理
- 国庆在家太无聊, 用Java爬了上千张小姐姐照片...
- 弃用 Notepad++,还有5款更牛逼的选择!
- 我发现混的好的,都是挺能“吹牛逼”的
- 再见2018,你好2019