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