`
clark1231
  • 浏览: 255298 次
  • 性别: 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)

分享到:
评论

相关推荐

    c语言中命令行参数详解

    在 C 语言中,命令行参数的传递是通过 `main` 函数的形参实现的,通常的定义形式为 `main(int argc, char argv)`。其中,`argc` 是命令行参数的个数,`argv` 是一个指向指针的指针,指向一个字符串数组。 在 `main`...

    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命令行中执行程序名后的第...

    fflags是基于C语言的命令行参数解析程序.zip

    在C语言中,处理命令行参数通常涉及到对`main`函数中的`int argc`(参数计数)和`char **argv`(参数数组)的直接操作,而FFlags则抽象了这一过程,使代码更加简洁和易于维护。 在C语言中,当程序启动时,操作系统...

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

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

    MFC中命令行参数处理的实现.pdf

    这种方式类似于传统的C语言处理命令行参数的方式,适用于简单的参数处理场景。 2. **方法二:重载`CWinApp::OnCmdLineParsed`** MFC允许用户通过重载`CWinApp::OnCmdLineParsed`函数来处理命令行参数。这个函数...

    C语言程序设计技巧之命令行参数

    在C语言中,命令行参数通常通过`main`函数的两个特殊参数来接收:`int argc` 和 `char *argv[]`。 - **`int argc`**:表示命令行参数的个数,包括程序本身的名字。 - **`char *argv[]`**:是一个字符指针数组,存储...

    C语言写的命令行,比较漂亮

    2. **命令行参数**:程序可以通过`main()`函数的`argc`和`argv`参数接收命令行参数。`argc`是参数的数量,`argv`是一个字符串数组,包含了所有参数。 3. **文件操作**:C语言提供了丰富的文件操作接口,如`fopen()`...

    int main(int argc,char argv[ ])

    "int main(int argc,char argv[ ])" ...int main(int argc, char *argv[])是C语言中最标准的main函数定义方式,argc和argv这两个参数是必不可少的,它们提供了命令行参数的访问接口,从而实现了不同的功能。

    argc与argv的用法

    在C语言和C++编程中,`argc`和`argv`是两个非常基础且重要的概念,它们用于在程序启动时接收命令行参数。当你在命令行界面运行一个程序,并向其传递参数时,这些参数会被程序通过`argc`和`argv`捕获。下面将详细解释...

    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-C++基础知识] main函数的参数argc和argv1

    【C/C++基础知识】:main函数的参数argc和argv详解 在C和C++编程语言中,`main`函数是程序执行的入口点。当我们编译并运行一个C或C++程序时,可以向程序传递命令行参数。这些参数通过`main`函数的两个特殊参数`argc...

    飞鸽c语言命令行版本.zip

    - **命令行参数**:通过`main`函数的`argc`和`argv`参数接收命令行传入的参数。 - **文件操作**:C语言提供了丰富的文件I/O函数,如`fopen`、`fclose`、`fread`、`fwrite`等,用于处理命令行工具的数据传输。 4. ...

    第9章 指针和数组-5指针数组及其应用 - 用指针数组表示命令行参数1

    值得注意的是,`argv[0]`通常是程序的名称,而`argv[1]`到`argv[argc-1]`则分别对应其他的命令行参数。 以下是一个简单的示例代码,演示了如何在`main`函数中处理这些参数: ```c int main(int argc, char *argv[]...

    C 代码 报告调用它的命令行参数args.rar

    标题"**C 代码 报告调用它的命令行参数args.rar**"暗示了这个压缩包包含一个C语言编写的程序,该程序设计用于接收并处理命令行参数,参数名为`args`。 首先,让我们来了解一下命令行参数的基本概念。在命令行环境下...

    对python中的argv和argc使用详解

    在Python编程语言中,`argv` 和 `argc` 是与命令行参数处理相关的概念,它们在C语言中被广泛使用,但在Python中有着不同的实现方式。这篇文章将详细讲解这两个概念以及如何在Python中使用它们。 首先,让我们了解这...

    20120906_命令行参数解析1

    在IT领域,尤其是软件开发中,命令行参数解析是一个至关重要的功能,特别是在编写控制台应用或脚本时。...无论是在C语言、bash脚本、Python还是Go中,正确解析和处理命令行参数都能显著提高程序的灵活性和用户体验。

    C语言程序设计技巧

    在C语言程序设计中,掌握如何处理命令行参数是一项基础且重要的技能。命令行参数允许程序员在运行程序时传递额外的信息,这可以极大地增加程序的灵活性和实用性。 在C语言中,`main`函数是程序的入口点,它接受两个...

    getopt多参数解析函数具体分析命令行参数解析

    `getopt()`函数是C语言中用于解析命令行参数的标准函数,主要应用于Unix/Linux系统,也可以在其他支持C语言的环境中使用。它简化了对带有选项和参数的命令行输入的处理,使得程序能够优雅地解析和理解用户提供的...

Global site tag (gtag.js) - Google Analytics