`

main函数的参数

 
阅读更多
转自http://blog.csdn.net/yhawaii/article/details/7361302

main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:
    main (argc,argv)

C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
    main (int argc,char *argv[])

    由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
DOS提示符下命令行的一般形式为:
    C:\>可执行文件名  参数  参数……; 

    但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。
例如有命令行为:
    C:\>E24  BASIC  foxpro  FORTRAN

由于文件名E24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图所示:



main(int argc,char *argv)
{
  while(argc-- > 1)
      printf("%s",*++argv);
}

本例是显示命令行中输入的参数。如果上例的可执行文件名为e24.exe,存放在A驱动器的盘内。因此输入的命令行为:
    C:\>a:e24 BASIC foxpro FORTRAN 

则运行结果为:
BASIC
foxpro
FORTRAN

该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次argv值减1,当argv等于1时停止循环,共循环三次,因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、三次循环分别打印后二个字符串。而参数e24是文件名,不必输出。
分享到:
评论

相关推荐

    main函数的两个参数

    在标题“main函数的两个参数”中提到的,实际上是指`main`函数可以接受两个参数,这是一个在标准C/C++中不常用但仍然合法的特性。通常我们看到的`main`函数定义可能是这样的: ```c int main() { // 程序代码 } ``...

    C例子:main函数的参数

    该程序是我写的博客“一起talk C栗子吧(第五十七回:C语言实例--main函数的参数)”的配套程序,共享给大家使用

    Qt中使用main函数中的参数.rar

    5.保证无毒 1.简单,方便,实用 3.实例可以自行改用 1.如有非法,本人无法律责任,由改动代码人负责! 8.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用! 4.如果需要联系我请看左边数字!...

    main函数传递参数

    main 函数传递参数 main 函数是 C/C++ 语言中的入口函数,即程序的开始执行点。在控制台程序中,main 函数可以接收参数,这些参数可以来自操作系统的命令行。了解 main 函数的参数传递机制对编写控制台程序非常重要...

    关于main函数两个参数

    当我们谈论`main()`函数的两个参数`argc`和`argv`时,我们实际上是在讨论如何处理命令行参数。这些参数是在程序启动时由操作系统传递给程序的,通常在DOS或类DOS环境下。 `argc`(Argument Count)是一个整数,它...

    C++_main()函数及其参数

    ### C++中的_main()函数及其参数详解 #### 一、引言 在C++编程语言中,`main()`函数是程序执行的起点。通常情况下,`main()`函数没有参数或者带有两个参数:`argc`和`argv[]`。这两个参数在处理命令行参数时尤为...

    C程序中如何调用main函数参数

    C程序中如何调用main函数参数 在C程序设计中,main函数是程序的入口点,它可以接受命令行参数,这些参数可以在程序中被使用。main函数的原型通常如下所示: int main(int argc, char argv) 其中,argc表示参数的...

    Android studio 运行main 函数的方法

    在Android Studio中,通常我们开发的是Android应用程序,它们的核心入口点是`Activity`类的`onCreate()`方法,而非Java程序中的`main()`函数。然而,如果你需要在Android Studio中测试独立的Java类,比如包含`main()...

    带参数的MAIN函数学习

    然而,我们可以为`main()`函数添加参数,使其具有接收外部输入的能力。主要有两种形式: 1. 接收命令行参数:`int main(int argc, char* argv[])` 在这种形式中,`argc`表示命令行参数的总数(包括程序本身的名称...

    C程序中main的参数

    #### main函数参数详解 `main`函数在C语言中接受两个参数:`argc`和`argv`,它们分别代表了命令行参数的数量和内容。 - `int argc`: 参数计数器,表示传入命令行参数的数量(包括程序名本身)。在上面的例子中,`...

    函数参数的传递

    在C语言中,函数参数的传递主要有三种方式:值传递、地址传递和引用传递。这三种方式各自有不同的特性和应用场景,理解它们的工作原理对于编写高效和正确的程序至关重要。 1. 值传递(Value Passing) 值传递是最...

    c语言面试题----main函数

    ### C语言面试题:Main函数详解 #### 题目背景 在C语言编程中,`main`函数是每个程序的入口点。正确理解和编写`main`函数对于编写高质量、可移植性强的程序至关重要。本篇文章将深入探讨C语言中的`main`函数,包括...

    第10章 对函数的进一步讨论 .ppt

    理解main函数参数的使用,能够处理命令行输入,而函数名作为参数和指向函数的指针变量则扩展了函数的功能,使我们能够实现函数间的更复杂交互。最后,递归调用是编程中的一种强大工具,但需要明智地使用以避免性能...

    C语言main函数的参数及其返回值详细解析

    1. **main函数的返回值** `main`函数的返回值通常是一个整型,用来指示程序的退出状态。当`main`函数返回`0`时,这表明程序正常执行完毕,没有遇到任何错误。如果返回其他非零值,这通常意味着程序在运行过程中遇到...

    函数参数的传递问题(一级指针和二级指针)

    函数参数传递问题(一级指针和二级指针) 函数参数传递问题是指在函数调用时,参数的传递方式对函数的执行结果的影响。函数参数可以是基本类型、数组、结构体、指针等,在函数调用时,参数的传递方式会影响函数的...

    带参数的main函数2.zip

    当我们谈论“带参数的main函数”,通常是指在`main`函数中接收命令行参数的能力。这些参数是在程序启动时通过操作系统传递给程序的,允许开发者在不修改代码的情况下,对程序的行为进行一定程度的控制或传递数据。 ...

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

    下面是一个使用main函数参数的示例程序,名为EXAMPLE.EXE,它演示了如何在main函数中使用argc、argv和env参数: ```c #include #include main(int argc, char* argv[], char* env[]) { int i; printf("These ...

    java中main函数解析.docx

    main 函数的参数是一个字符串数组,即 String[] args,这是因为字符串类型的参数可以表示任何类型的参数,而其他类型的参数则不能。例如,命令行参数 "jack" 和 "100" 可以被解释为字符串,但不能被解释为整数或...

Global site tag (gtag.js) - Google Analytics