- 1、本文档共90页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章; 本章要点
函数的定义
函数的调用
函数间的数据传递
变量的存储类型
变量的作用范围
内部函数和外部函数;C程序是函数的集合体,每个函数是一个独立的程序模块。
有一个主函数,若干个子函数,程序总是从主函数开始执行。
函数可集中或分散存放在一个或多个源程序文件中。
所有子函数地位平等,可互相调用、自我调用。
· 引入函数的优点: 减少重复编写程序的工作量;使程序便于调试和阅读。;;[例] 输入三个整数,计算它们的和并输出运算结果。;8.1.2 函数的定义;定义函数的一般形式
类型标识符 函数名(形式参数表)
{ [说明部分]
语句
};1. 无参函数的定义形式
类型标识符 函数名( )
{
[说明部分]
语句
}
; [例8-2]
int max (int x,int y)
{
int z;
z=xy?x : y;
return z;
} ;3. 形式参数说明
形式参数:
在定义函数时函数名后面括弧中的变量名
在形参表中说明的形参,在函数体中不再说明,可以同一般变量一样直接使用。
形参调用前不占内存单元,调用时分配内存单元。调用结束后释放。
形参是函数的内部变量,只在函数内部才有意义。
对每个形参必须指明其名字和数据类型。
多个形参用逗号分隔。
;;8.1.3 函数的调用;(1) 函数语句: (把函数调用作为一个语句)
一般形式:函数名(实际参数表);
使用情况:这种方式常用于调用一个可以忽略返回值
或没有返回值的函数,只要求函数完成一定的操作。
例如: print_message( ); ; 值传递: 在函数调用时,实参将其值传递给形参。
实参对形参的数据传递是“值传递”,即单向传递,只由实参传递给形参,而不能由形参传回来给实参。
实参与形参占用不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放??实参单元仍保留并维持原值。在执行一个被调用函数时,形参的值如果发生变化,并不会改变主调函数中实参的值。;[例8-3] 编写函数交换两个变量的值。
#include stdio.h
void swap ( int x, int y)
{ int temp;
temp=x; x=y; y=temp;
printf ( x=%d, y=%d\n, x, y);
}
int main ( )
{ int a, b;
a=5; b=10;
printf ( a=%d, b=%d\n, a, b);
swap(a, b);
printf ( a=%d, b=%d\n, a, b);
};8.1.5 函数的返回值;说明:
return语句只能把一个返回值传递给调用函数。
返回值的类型为定义的函数类型,若return语句中表达式类型与函数类型不一致,以函数类型为准。
返回值可以是有确定值的常量、变量或表达式,也可以是地址。当返值是地址时,应该用指针接受。
无返回值的函数,定义为void类型(无类型函数)。
一个函数中可以有多个返回语句。
exit()函数由ANSC C定义的,功能是终止和关闭所有程序,结束程序执行,忽略返回值。0 为正常退出 非0 为非正常退出。; main( )
{ int a,b,c;
scanf (“%d,%d”,a,b);
c=max(a,b);
printf(“Max is %d”,c);
};[例8-5]用函数计算浮点数x的n次方,其中n为整型(n=0);[例8-6]编写函数,将一个给定的整数转换成字符串。 ;[例8-7] 编
文档评论(0)