`
clark1231
  • 浏览: 247463 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

c语言中命令行参数argc,argv

c 
阅读更多

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)

分享到:
评论

相关推荐

    XXXX.rar_argc argv_c语言 命令 参数 argc_argv_www.xxxx_xxxxerr_yes

    * argc: 整数, 为传给main()的命令行参数个数。 * argv: 字符串数组。 在DOS 3.X 版本中, argv[0] 为程序运行的全路径名 对DOS 3.0 以下的版本, argv[0]为空串("") 。 argv[1] 为在DOS命令行中执行程序名后的第...

    关于main函数两个参数

    c语言中命令行参数argc,argv 关键词: argc,argv main(int argc,char **argv) argv为指针的指针 argc为整数

    Python 获得命令行参数的方法(推荐)

    如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2] test.py import ...

    C语言中 int main(int argc,char *argv[])的两个参数详解

    C语言中 int main(int argc,char *argv[])的两个参数详解 argc是命令行总的参数个数; argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数。命令行后面跟的用户输入的参数。 int main(int argc, char* ...

    python实现读取命令行参数的方法

    如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2] test.py: import ...

    C 命令行参数

    命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每个参数。下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动作: #...

    C语言中getopt()函数和select()函数的使用方法

    C语言getopt()函数:分析命令行参数 头文件 #include 定义函数: int getopt(int argc, char * const argv[], const char * optstring); 函数说明:getopt()用来分析命令行参数。 1、参数argc 和argv 是由main...

    int main(int argc,char argv[])详解

    argv[]为保存命令行参数的字符串指针,其中第0个参数是程序的全名,以后的参数为命令行后面跟的用户输入的参数,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的...

    c语言main函数使用及其参数介绍

    * argc:整数,为传给main()的命令行参数个数。* argv:字符串数组。char* argv[],我们可以看出,argv的类型是char* [],即是一个指向字符数组的指针,所以我们还可以写作:char** argv。在DOS 3.X版本中,argv[0]为...

    C语言UDP传输系统源码

    2. `GetArgments(int argc, char **argv)`函数用于解析命令行参数,指定程序是执行广播还是多播,以及设置相关参数。 3. `userHelpAll()`, `userHelpBro()`, `userHelpMul()`函数用于打印用户帮助信息。 4. `...

    C语言程序设计标准教程

    [例10.3]把命令行参数中的前一个文件名标识的文件, 复制到后一个文件名标识的文件中, 如命令行中只有一个文件名则把该文件写到标准输出文件(显示器)中。 #include main(int argc,char *argv[]) { FILE *fp1,*fp2; ...

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...

    Python 获取命令行参数内容及参数个数的实例

    C语言通过argc和argv来获取参数的个数和参数的内容,python中通过sys模块的argv来获取参数的内容,使用len(sys.argv)获取参数的个数。 示例代码: # -*- coding: utf-8 -*- """ Created on Fri Sep 28 14:17:33 ...

    Linux-Socket-服务器编程实例.pptx

    Linux Socket服务器端编程实例 argc:命令行总的参数的个数,即argv中元素的个数。 *argv[ ]:字符串数组,用来存放指向字符串参数的指针数组,每一个元素指向一个参数。 9 Linux-Socket-服务器编程实例全文共13页,...

    你必须知道的495个C语言问题

    *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂的警告信息? 2.7 我遇到这样声明结构的代码:structname{intnamelen;charnamestr[1];}...

    CmdParser:使用C ++ 11的简单轻量级命令行解析器

    将命令行参数传递给解析器: int main ( int argc, char ** argv) { cli::Parser parser (argc, argv); /* ... */ } 在以下两节中,我们将介绍如何设置和使用解析器。 设置 设置解析器可以使用以下方法进行工作...

    你必须知道的495个C语言问题(PDF)

    难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返 回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义...

Global site tag (gtag.js) - Google Analytics