- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;定义函数的目的是为了调用此函数,以达到预期的效果。
函数名(实际参数列表);
在实际参数列表中,参数与参数之间是用逗号隔开的,若被调用函数是无参函数,则实际参数列表消失,但一对圆括号不能省略。
例如:
voidf(inta,intb)/*函数定义*/
{...}
main()
{
intx=2,y=1;
...
f(x,y); /*调用函数*/
};
按函数出现在程序中的位置来分,可以有3种函数调用方式:
(1)以独立的函数语句调用
这种调用方式中,函数一般无返回值。例如:
showchar()
{
printf(helloworld!!);
}
main()
{
showchar();
};(2)函数的调用出现在表达式中
函数出现在一个表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定值以参加表达式的运算。例如:
x=func((a--,b++,a+b),c--)%5;
函数func仅作为某一表达式的一部分出现在表达式中,其功能相当于一个具体的常量或简单变量。
(3)函数参数
将函数作为一个函数的实际参数进行调用。例如:
x=max(a,max(b,c));
其中max(b,c)是一次函数调用,它的值作为max另一次调用的实际参数。功能为使x的值等于a、b、c中的最大值。;函数调用的实际执行过程如下:
(1)对实际参数列表中的每一个表达式求值。
(2)将表达式的值依次对应地赋给在被调用函数头部定义的形式参数变量。
(3)执行被调用函数的函数体。
(4)如果有return语句被执行,则控制返回到主调函数中,如果return语句
中包含表达式,将return语句中表达式的值返回到主调函数。
例函数的调用。
floatmax2(floatx,floaty)
{floatz;
if(xy)z=x;
else z=y;
return(y);
}
main()
{floata,b,c;
scanf(%f,%f,a,b);
c=max2(a,b);
printf(%f\n,c);};在C语言中,除了主函数外,对于用户定义的函数要遵循“先定义,后使用”
的规则。凡是把被调用函数的定义放在调用之后,应该在调用之前对函数进
行声明(或称为函数原型声明,有的也称函数说明)。
函数声明一般形式:
函数类型函数名(形参类型[形参名],…..);
或者函数函数名();
注意:
(1)函数声明可以是一个独立的语句;如上面例子中就是??用独立语句的形式。
(2)函数声明中的形参名是一种虚设,它们可以是任意的用户标识符,既不必与函数首部中的形参名一致,又可以与程序中的任意用户标识符同名。因此,参数名也可以省略。
(3)注意函数定义与函数声明是不同的,定义是写出函数的完整形式,而声明是告诉系统此函数的返回值类型、参数的个数与类型,便于编译时进行有效的类型检查。;函数的声明举例;1.局部变量
在函数体内定义的变量称为局部变量,也称为内部变量。局部变量只能在定义它的函数中使用。例如:
main()
{inti,a=0;
for(i=1;i=2;i++)
{inta=1;
a++;
printf(i=%d,a=%d\n,i,a);
}
printf(i=%d,a=%d\n,i,a);
}
运行结果是:
i=1,a=2
i=2,a=2
i=3,a=0;2.全局变量
全局变量是在函数之外定义的变量。在任何一个函数之外的位置,都可以定
义全局变量。在一个程序中,凡是在全局变量之后定义的函数,都可以使用
在其之前定义的全局变量。因此,一个全局变量,可以被多个函数使用,但
并不一定能被所在程序中的每一个函数使用,全局变量也有一定的作用范围。
例全局变量使用举例。
#includestdio.h
inta=3,b=5;
max(inta,intb)
{intc;
c=ab?a:b;
return(c);}
main()
{inta=8,m;
m=max(a,b);
printf(m=%d\n,m);
};
您可能关注的文档
- 6.3.3晶体管输入特性课件讲解.ppt
- 6.3.3凸台凹坑结构 (1)课件讲解.ppt
- 6.3.3线性零部件阵列课件讲解.pptx
- 6.3.4供电电路上电检测 (1)课件讲解.pptx
- 6.3.4零部件特征驱动阵列课件讲解.pptx
- 6.3.5镜向零部件课件讲解.pptx
- 5-3-1 认识Z3050摇臂钻床 (1)课件讲解.pptx
- 5-3-3 SL-136系列Z3050摇臂钻床实训台操作 (1)课件讲解.pptx
- 5-4-3 SL-136系列X62W万能铣床实训台操作 (1)课件讲解.pptx
- 5-5 步进电驱动器原理课件讲解.pptx
- 2024年高中数学同步高分突破讲义(人教A版2019)专题3-2圆锥曲线中的三角形面积-(选择性必修第一册)(学生版+解析).docx
- 2024年高中数学同步高分突破讲义(人教A版2019)专题3-5圆锥曲线定值问题-(选择性必修第一册)(学生版+解析).docx
- 2024年高中数学同步高分突破讲义(人教A版2019)3.1椭圆-(选择性必修第一册)(学生版+解析).docx
- 2024年高中数学(必修第一册)5.3诱导公式精品讲义(学生版+解析).docx
- 2024年中考数学【高分·突破】压轴题培优专题精练压轴热点考点01实数及其运算(原卷版+解析).docx
- 2024年中考数学【高分·突破】压轴题培优专题精练压轴热点考点04含参不等式组及其应用(原卷版+解析).docx
- 2024年中考数学【高分·突破】压轴题培优专题精练压轴热点考点05一次函数与反比例的图像及其性质(压轴突破)(原卷版+解析).docx
- 2024年中考数学【高分·突破】压轴题培优专题精练压轴热点考点06二次函数的解析式、图像及其性质(压轴突破)(原卷版+解析).docx
- 2024年中考数学【高分·突破】压轴题培优专题精练压轴热点考点10解三角形的四大模型(压轴突破)(原卷版+解析).docx
- 2024年中考数学【高分·突破】压轴题培优专题精练压轴热点考点12圆的概念、性质与位置关系(压轴突破)(原卷版+解析).docx
文档评论(0)