精华内容
下载资源
问答
  • main函数可以带参数,这个参数可以认为是 main函数的形式参数C语言规定main函数参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个...

    main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main (argc,argv) int argv; char *argv[]; 或写成: main (int argc,char *argv[])

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

    C:/>可执行文件名 参数 参数……;

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

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

    以下已程序为例

    #include

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

    for(int i=0;i

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

    return 0;

    }

    将以上程序编译生成exe文件 1.18.exe

    将其放在c盘

    window键加R打开运行窗口

    输入cmd打开控制台窗口

    20180111005246803565.png

    输入cd\将目录转到c盘根目录(1.18.exe文件放在这里)

    输入1.18 paral1 paral2 s.txt 5 4

    20180111005246805518.png

    原文:http://www.cnblogs.com/jrx12354/p/7801517.html

    展开全文
  • 相信大家用C语言定义main函数时,大多数人的写法都是int main(void)。其实main函数是可以向其传递参数的,给个实例://给main函数传参实例:#include #include //int main(int argc, char *argv[])int main(int argc...

    相信大家用C语言定义main函数时,大多数人的写法都是int main(void)。其实main函数是可以向其传递参数的,给个实例:

    //给main函数传参实例:

    #include

    #include

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

    int main(int argc, char **argv)

    {

    char *array[3]  = {"./main", "hello", "world"};

    if (argc < 2)

    {

    printf("error!\n");

    printf("./main str\n");

    return -1;

    }

    printf("The first string of your command is:%s\n", argv[0]);

    printf("The second string of your command is:%s\n", argv[1]);

    printf("The third string of your command is:%s\n", argv[2]);

    if (!strcmp(argv[0], array[0]))

    {

    printf("The first command execute successfully!\n");

    }

    if (!strcmp(argv[1], array[1]))

    {

    printf("The second command execute successfully!\n");

    }

    if (!strcmp(argv[2], array[2]))

    {

    printf("The third command execute successfully!\n");

    }

    return 0;

    }

    输出结果:

    (1)若输入命令为:./main

    则输出结果为:

    error!

    The command is:./main

    (2)若输入命令为:./main hello world

    则输出结果为:

    The first string of your command is:./main

    The second string of your command is:hello

    The third string of your command is:world

    The first command execute successfully!

    The second command execute successfully!

    The third command execute successfully!

    大家可以利用这个程序模型干很多事呢!

    将C语言梳理一下,分布在以下10个章节中:

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 带参数main函数首次出现是在指针部分,利用设置处的debug进行参数预定。 之后运行会有参数显示。 以下代码会出现纰漏,望各位大佬指点! #include<stdio.h> int main(int argc,char *argv[]) { char ch; ...

    带参数的main函数首次出现是在指针部分,利用设置处的debug进行参数预定。
    之后运行会有参数显示。

    以下代码会出现纰漏,望各位大佬指点!

    #include<stdio.h>
    int main(int argc,char *argv[])
    {
    	char ch;
    	FILE *fp1,*fp2;
    	
        fp1=fopen(*(argv+1),"rb");
    	if(fp1==NULL)
    	{
    		return 0;
    	}
    	fp2 = fopen(*(argv+2),"wb");
    	if(fp2==NULL)
    	{
    		return 0;
    	}
    	while ((ch=fgetc(fp1))!=EOF)
    	{
    		fputc(ch,fp2);
    	}
    
    	fclose(fp1);
    	fp1=NULL;
    	fclose(fp2);
    	fp2=NULL;
    	return 0;
    }
    
    while ((ch=fgetc(fp1))!=EOF)
    {
    	fputc(ch,fp2);
    }
    

    这一段为文件复制的核心代码段,在上一次的博客提到过。

    展开全文
  • C语言函数被定义以后可以被多次调用,调用的时候可以向它传递参数C语言函数调用函数的调用指的就是函数的使用方法。在程序中使用已经定义的函数,可以使用函数调用表达式,其一般格式如下:函数名(实参1, 实参2, ...

    C语言函数被定义以后可以被多次调用,调用的时候可以向它传递参数。

    C语言函数调用

    函数的调用指的就是函数的使用方法。

    在程序中使用已经定义的函数,可以使用函数调用表达式,其一般格式如下:

    函数名(实参1, 实参2, …) //实参对应于函数定义时的形参声明

    程序执行时,函数调用表达式将会被函数返回值所代替(见图 1)。函数的返回值一般由 return 语句指定。

    a01b0cd5a67aa2913932c97ed19bfa7d.gif

    图 1:函数调用时参数的传递(值传递)和值的返回

    程序运行中进行函数调用后,程序的流程会转到被调用的函数处,同时传递过来的实参的值被赋值给函数对应的形参(形参初始化),接着执行函数体语句,在遇到 return 语句,或者执行到函数体最后的大括号时,程序流程就会从该函数跳转到原来调用函数的位置(见图 2)。

    e0e333913d54bcd4a6b657704905d5c4.gif

    图 2:调用函数时程序的执行流程

    代码清单 1:使用函数求两个整数中较大的值

    #include

    #include

    /*---自定义函数Max2:返回较大值---*/

    int Max2 (int a, int b)

    {

    if(a>b)

    return a;

    else

    return b;

    }

    /*---主函数---*/

    int main( )

    {

    int n1,n2;

    puts("请输入两个整数。\n");

    printf("整数1:"); scanf("%d",&n1);

    printf("整数2:"); scanf("%d",&n2);

    printf("较大的值是%d \n",Max2(n1,n2)); //调用Max2函数

    system("pause");

    return 0;

    }

    运行结果为:

    请输入两个整数。

    整数1:66

    整数2:47

    较大的值是66

    知识点总结

    函数调用的形式是在函数名后面加上小括号“()”。

    函数调用时,小括号“()”中的参数称为“实参”。

    函数调用的形式可称为“函数的调用表达式”。

    函数调用表达式的值就是函数的返回值。

    函数调用时参数的传递:值传递

    上面的代码清单 1 中,main( ) 函数通过 Max2(n1,n2) 调用自定义函数 Max2 时,实参变量 n1 的值被赋值给 Max2 的形参变量 a,实参变量 n2 的值被赋值给 Max2 的形参变量 b,此时,a 是 n1 的副本,两者具有相同的值,b 是 n2 的副本,两者具有相同的值。像这样通过值来进行参数传递的机制称为值传递。

    由于函数间参数的传递是通过值传递进行的,所以,函数调用表达式中的实参可以是另一个有返回值的函数调用表达式(见图 3)。

    d2378c348a6934c2d72300082d2d0e07.gif

    图 3:将函数的返回值作为参数传递给函数

    知识点总结

    函数间参数的传递是通过值的传递进行的。

    函数调用时实参的值会被赋给形参。

    形参所指的变量是对应的实参所指的变量的副本,它们具有相同的值。

    3. 函数调用时数组的传递

    自定义函数中,如果形参接收的是一个数组,则定义函数时要在形参声明中加上[ ]。而在函数调用表达式中的实参则直接使用数组名即可(见图 4)。

    指向数组的形参声明格式如下:

    类型名 形参名[ ] //形参名与指向的原数组名不同

    //类型名与数组的数据类型相同

    4b6c789c7fbad8062103cdcbb7d6a373.gif

    图 4:函数调用中数组和变量值的传递

    代码清单 2:使用函数(数组的传递)计算数学成绩和英语成绩的最高分

    #include

    #include

    #define NUMBER 5

    /*--自定义函数:返回拥有n个元素的数组v中的最大值--*/

    int Max_of(int v[],int n)

    {

    int i,max=0;

    for(i=0;i

    if(v[i]>max) max=v[i];

    return max;

    }

    /*---主函数---*/

    int main()

    {

    system("color 70");

    int i,eng[NUMBER],math[NUMBER],max_e,max_m;

    printf("请输入%d名学生的成绩。\n",NUMBER);

    for(i=0;i

    printf("[%d]英语:",i+1); scanf("%d",&eng[i]);

    printf(" 数学:"); scanf("%d",&math[i]);

    }

    max_e=Max_of(eng,NUMBER); //调用Max_of函数

    max_m=Max_of(math,NUMBER); //调用Max_of函数

    printf("英语最高分=%d\n",max_e);

    printf("数学最高分=%d\n",max_m);

    system("pause");

    return 0;

    }

    运行结果为:

    请输入5名学生的成绩。

    [1]英语:89

    数学:78

    [2]英语:77

    数学:88

    [3]英语:79

    数学:83

    [4]英语:71

    数学:87

    [5]英语:70

    数学:96

    英语最高分=89

    数学最高分=96

    图 5 展示了函数调用中数组的传递和变量值传递的区别。

    f0ce3505c5988c71e090ac3c46c0fed1.gif

    图 5:函数调用中数组的传递和变量值传递的区别

    知识点总结

    函数内接收数组的形参所指的数组就是原数组本身,只是数组名改变为形参的参数名而已(有别于一般变量参数值的传递)。

    在函数内对形参数组的修改实际上就是对实参数组(原数组)的修改。

    在函数内改变形参变量的值不会影响实参变量。

    展开全文
  • C语言总是从main函数开始执行吗

    千次阅读 2021-05-21 05:33:26
    //--------------------------------------------------------本文目录结构|-提出问题|-解决问题|-推荐文章|-作业//--------------------------------------------------------一、提出问题①C程序main函数是必要的...
  • 带入参的main函数 介绍 带入参的main函数主要用于一些基本调试,main函数的入参在main函数里被解析为字符串,因此根据具体的调试业务可以需要将字符串转为相应的int类型或double类型进行其他的操作。 函数实现 // ...
  • C语言main函数传参

    2021-01-25 16:07:49
    main 函数传递参数时需要完整定义为 int main(int argc, char **argv) 其中,参数 argc 表示参数的个数,参数 **argv 存储输入字符 的数组。argv[0] 表示程序名称,argv[1]~argv[n] 为输入的参数。 不传参数的时候...
  • C语言main函数可以在任意位置。每一个C语言程序有且只有一个主函数(main()),且程序必须从main()函数开始,它是程序开始时调用的第一个函数。函数定义形式:【int main(void){}】。C语言规定,在一个C程序中,main...
  • 我们在C语言中定义一个函数,通常都是需要在函数原型中规定这个函数需要提供什么类型的参数以及需要提供多少个。也就是,你的参数必须明确。但是我们调用函数库中的printf和scanf函数会发现,它们似乎是可以根据我们...
  • C语言main函数传参

    2021-05-19 07:45:58
    1:为什么需要给main函数传参首先要明白一点,给mian函数传参不是必须的,但是有时候我们需要通过给main函数不同的参数来得到的不同的结果,比如我们希望main函数中某个变量的值为0时执行子函数A,该变量值为1时执行...
  • C语言必须从main函数开始执行吗?

    千次阅读 2021-04-27 21:38:43
    C语言必须从main函数开始执行吗? ** 前言 在C语言main函数,是程序的入口,是程序的开始,也是在main函数结束。 引出问题,C语言程序必须从main函数开始吗? 回答:当然是否定的。 在C primer plus 书中是这样...
  • c语言 如何在main中调用函数

    千次阅读 2021-05-21 13:32:50
    #include int main(){char f;float d = 0;float i = 0;float y = 0;//定义两个用于储存输入数值的函数printf("输入计算表达式,各项之间使用空格分开:\n");scanf("%f%c%f\n",&i,&f,&y);if(f = '+'){d =...
  • 在众多的单片机C语言编译器里对main函数的写法都没有明确的要求,写法非常自由,可以写成形参的函数,也可以写成无形参的函数,还可以写成返回值为任意数据类型的函数。通用的写法都是:void main () {…}。而根据...
  • C语言刚开始的学习中,我们知道main函数是程序的入口函数,每次程序执行...但是等你看其它的参考资料的时候,你会发现很多书上的main函数都会参数:main(int argc,char *argv[])这看上去确实很奇怪,不过等你...
  • C语言函数参数传递问题导语:在一些C语言教材和参考资料中,常常把函数参数传递分为“数值传递”和“地址传递”两种方式,这种概念模糊的分类方法给初学者的理解造成一定程度的困难。下面就由小编为大家介绍一下...
  • C语言main函数有几种写法?

    千次阅读 2021-05-20 03:46:33
    main函数,又称主函数,是程序执行的起点,我们平时写的main函数是什么样呢?1,是这样?main(){}2,还是这样?void main(){}3,还是这样?int main(void){}4,还是这样?int main(){}5,还是这样?int main(int ...
  • C语言自带的排序函数

    2021-07-02 16:25:39
    C语言有自有的qsort函数。 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 原型: void qsort(void base,int nelem,int width,int (fcmp)(const void ,const void )); 参数: 1 待排序数组首地址 2 数组中待...
  • 关于C语言main函数

    2021-05-21 06:14:03
    最近回看了一本C语言方面的书,准备复习一下C语言的基础知识,正如大多数C语言课本一样,第一个例子总是简单的"Hello World",...上面的例子中,虽然没有指明main函数的返回值类型,编译器会使用默认的空类型作为返...
  • C语言程序从main()函数开始执行,所以这个函数要写在( )。中医传承的方式是“师傅徒弟,语言程要写手把手教”函数函数《团圆之后》中郑司成是被毒酒毒死的。开始舞蹈《红船》从具象的船讲到抽象的革命信念:而舞蹈...
  • 提示:第一次写博客,所以决定从比较简单的maan函数开始 文章目录前言一、关于 main函数的标准定义1、...C语言中对void main ()并未定义,但是,main函数在没有任何参数和不返回任何信息的函数原型为void main()
  • C语言main函数

    2021-05-20 04:18:10
    http://blog.csdn.net/searchsun/article/details/24491782008C的设计原则是把...一、main()函数的形式在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void )--无参数形式{...return 0;}int mai...
  • 函数三要素: 名称、参数、返回值。C语言中的函数有自己特定的类型。 c语言中通过typedef为函数类型重命名: typedef int f(int, int); // f 为函数类型 typedef void p(int); // p 为函数类型 这一点和数组一样,...
  • 有参函数C语言有参函数详解

    千次阅读 2021-05-19 18:36:15
    有参函数,是指在主调函数调用被调函数时,主调函数通过参数向被调函数传递数据。在一般情况下,有参函数在执行被调函数时会得到一个值并返回给主调函数使用。有参函数是重点,我们主要介绍有参函数。有参...
  • 是的,一个C程序总是从main函数开始执行,而不论其在程序中的位置。在main函数中可以调用程序中的其他函数,而其他函数却不可以调用main函数;程序最后再从main函数中结束。本教程操作环境:windows7系统、c99版本、...
  • main函数C语言中是怎么定义的?有什么作用?更新时间:2019-10-24 13:55最满意答案额,main不是程序的最开始啦。拿用glibc的程序来说,C语言执行的过程应该是 _start -> _libc_start_main -> main -> ...
  • C语言函数参数传递详解

    千次阅读 2021-06-02 11:00:20
    1.值传递和指针传递 (1)值传递:即按值传递参数,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变 ...
  • 跟大家讲解下有关c语言程序总是从main函数开始执行吗?,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说c语言程序总是从main函数开始执行吗?,小编也收集到了有关c语言程序总是从main函数开始执行吗...
  • C语言程序执行时,必须从main函数开始,从mian函数结束。甲在上班途中遗失手机一部,语言程被乙拾得。甲发布悬赏广告称,语言程愿向归还手机者支付现金1000元作为酬谢。根据物权法律制度的规定,下列表述中,正确的是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,938
精华内容 173,175
关键字:

c语言带参数的main函数

c语言 订阅