第八九章函数.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八九章函数

第8章 函数调用和预处理 8.1 函数概述 例 :函数调用 main() { printstar(); print-message(); printstar(); } printstar() { printf(“************\n”); } print-message() { printf(“how do you do!\n”); } 一个源程序文件由一个或多个函数组成。 一个c程序由一个或多个源程序文件组成。 C程序的执行从main函数开始,调用其它函数后流程回到main函数,在main函数中结束整个程序。 所有函数都是平行的。 函数的分类 从用户角度: 主函数、库函数、用户自定义函数 从函数的形式: 有参函数、无参函数 从功能: 有返回值函数、无返回值函数 8.2 函数的定义与调用 C程序中使用用户自定义函数,必须遵循: 先定义、后声明、再使用的步骤。 2.有参函数的定义形式 类型标识符 函数名(形式参数表列) { 变量声明序列 执行语句序列 } 3.“空函数”的定义形式 类型说明符 函数名() { } 8.2.2 函数的参数和返回值 函数的形参和实参具有以下特点: main() { int n; printf(input number\n); scanf(%d,n); s(n); printf(ShiCan n=%d\n,n); } int s(int n) /*定义s()函数,n为形参*/ { int i; for(i=n-1;i=1;i--) n=n+i; printf(XingCan n=%d\n,n); } (5)函数可以没有参数。如: int get() { int e; scanf(%d,i); return(i); } 每次调用函数get()时,得到一个整型值。 2.函数的返回值 8.2.3 函数的调用 在一个函数中调用另一个函数应具备的条件: (1)被调函数必须是已经存在的函数(函数的定义) (2)如果调用库函数,应在文件开头用 #include 头文件名 或 #include “头文件名” (3)如果调用用户自定义函数,而且该函数与调用它的函数在同一个文件中,一般还要在主调函数中对被调函数作声明。 1.函数的声明 类型说明符 被调函数名(类型 形参,类型 形参…); 如: float add (float x,float y); 或为:类型说明符 被调函数名(类型,类型…); 如: float add (float, float); 第二种函数声明称为函数原形 第一种函数声明中的形参名可以和函数定义的形参名不一样。系统在编译时不检查参数名。 C语言规定在遇到以下三种情况时,可以省去在主调函数中对被调函数的函数声明。 ① 被调函数的返回值是整型或字符型时。 ② 被调函数的函数定义出现在主调函数之前 ③ 在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作声明。 2.函数调用的一般形式和调用方式 3.函数调用中的数据传递方式 在函数调用中应注意: C语言没有规定实参表达式的求值顺序,这取决于具体的系统。如Turbo C对实参求值顺序为自右至左。 例:下列程序的输出结果 viod f (int v,int w) { int t; t=v;v=w;w=t; } main() { int x=1,y=3,z=2; if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(“%d,%d,%d”,x,y,z); } 8.3 函数的嵌套调用和递归调用 C语言允许函数在自身的定义中又去调用另外一个函数甚至调用自己,C语言把前者称为函数的“嵌套”调用或嵌套函数,后者称为函数的“递归”调用或递归函数。 8.3.1 函数的嵌套调用 例:程序的输出结果 int f1(int x,int y) { return xy?x:y;} int f2(int x,int y) { return xy?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档