函数和预处理命令.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2005年3月 函数与预处理命令 第7章 函数与预处理命令 7.1 概述 【例7.1】求一个整数的立方。 int cube (int x) /* 函数定义 */ { return (x * x * x); } main( ) { int f, a; printf(\nEnter an integer number:); scanf(%d, a); f = cube (a); printf(%d * %d * %d = %d\n, a, a, a, f); } ⑷ 函数的种类 从函数定义形式分: ① 有参函数: 在主调(用)函数和被调(用)函数之间通过参数进行数据传递, 如: int cube (int x) { … } ② 无参函数: 如:getchar( ) 在调用无参函数时,主调函数不需要将数据传递给无参函数。 【例7.2】无参函数的定义与调用。 void welcome ( ) { printf(*********************************\n); printf( Welcome to China \n); printf(*********************************\n); } main( ) { welcome( );} 7.2.1 函数的定义 int max(x,y) int x,y; { int z; z = x y ? x : y; return( z ); } int sum100( ) { int i,t=0; for (i=1; i=100; i++) t+=i; return (t);} main( ) { int s; s=sum100( ); printf(%d\n, s); } 7.2.3 函数参数与函数的返回值 有关形参和实参的说明: 【例7.5】函数调用中实参的求值顺序。 void fun(int a,int b) { printf(a=%d,b=%d\n,a,b); } main( ) { int m=5; fun(3+m, m++); } 调用函数时的数据传递。 main() {int a,b,c; scanf("%d,%d",&a,&b);  c=max(a,b);  printf("Max is%d",c); } max(int x,int y)/定义有参函数max/ {  int z;  z=x>y?x∶y;  return(z); } 运行情况如下: 7,8 Max is 8 程序中第7~12行是一个函数定义(注意第7行的末尾没有分号)。第7行定义了一个函数名max和指定两个形参x、y及其类型。程序第4行是一个调用函数语句,max后面括弧内的a、b是实参。a和b是main函数中定义的变量,x和y是函数max中的形式参数。通过函数调用,使两个函数中的数据发生联系。见图8.2。 (2) 实参可以是常量、变量或表达式,如:   max(3,a+b); 但要求它们有确定的值。在调用时将实参的值赋给形参(如果形参是数组名,则传递的是数组首地址而不是数组的值。请参阅8.7节)。 (3) 在被定义的函数中,必须指定形参的类型(见例8.2程序第7行)。 (4) 实参与形参的类型应相同或赋值兼容。例8.2中实参和形参都是整型,这是合法的、正确的。如果实参为整型而形参x为实型,或者相反,则按第2章介绍的不同类型数值的赋值规则进行转换。例如实参值a为3.5,而形参x为整型,则将实数3.5转换成 整数3,然后送到形参b。但此时应将max函数放在main函数的前面或在main函数中对被调用函数max作原型声明,否则会出错。关于对函数的声明见8.4.3小节。字符型与整型可以互相通用。 (5) C语言规定,实参变量对形参变量的数据传递都是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参, void swap(int x,int y) { int z; z=x; x=y; y=z; printf(%d,%d\n,x,y); } main() { int a=1,b=2; swap(a,b); printf(a=%d,b=%d,a,b); } 2.函数的类型与函数的返回值 max(int x,int y) { int z; z=xy?x:y; return (z); /* 返回z的值 */ }

文档评论(0)

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

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

1亿VIP精品文档

相关文档