函数模块化设计函数定义的一般形式.ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
形参与实参类型一致,个数相同顺序相同。
若形参与实参类型不一致,自动按形参类型转换———函数调 用转换
形参在函数被调用前不占内存;函数调用时为形参分配内存;调 用结束,内存释放
实参对形参的数据传送是值传送,也是单向传送,当被调函数 的形参发生变化时,并不改变主调函数实参的值。形、实参占 据的是不同的存储单元
运行结果同上
T7-1-2.c p1( )
{printf (“*********************\ n”); }
T7-1-3.c p2( ) {printf (“
How do you do!\ n”); }
2020-6-17
谢谢阅读
一、概述
例:在屏幕上输出“How do you do ?”
stdio.h
How do you do!
print_message( ); printstar( );
*********************** *****
}
void printstar( )
{printf (“***********************\ n” ); }
void print_message( )
3.c
printf 函数
函数3
函数2
#include <stdio.h> void main() {
printf(“How do you do ?”); }
2020-6-17
谢谢阅读
一、概述
2、函数调用方式:
分为: 库函数和 自定义函数
a
main b
不能被调用 c
所有函数都是 平行的,不能
嵌套定义
max(int x, int y() max 函数) { int max(int x,int y);
{ int z;
int a,b,c;
z=x>y?x:y;
scanf("%d,%d",&a,&b);
源自文库return(z);
c=max(a,b);
实参
}
printf("Max is %d",c);}
max(int x, int y)
2020-6-17
谢谢阅读
例:形、实参占据的是不同的存储单元 #include <stdio.h> void main( ) {void add(int x,int y);
int a=2,b=3; printf (“a=%d, b=%d\n”,a, b); printf(“&a=%x,&b=%x\n”,&a,&b); add(a,b); printf(“a=%d,b=%d\n”, a,b); printf(“&a=%x,&b=%x\n”, &a,&b); } void add(int x,int y) {x=x+8; y=y+12; printf(“x=%d,y=%d\n”,x,y); printf(“&x=%x,&y=%x\n”,&x,&y);
z=x>y?x:y; return(z); }
2020-6-17
谢谢阅读
例 有参函数(现代风格) int max(int x, y) { int z;
z=x>y?x:y; return(z); }
二、函数定义的一般形式
3、空函数
❖为扩充功能预留,在主调函数中先占一个位置。 类型标识符 函数名() {}
形参
运行:7,8
2020-6-17
Max谢i谢s 阅8读
{ int z; z=x>y?x:y; return(z);}
三、函数参数和函数的值
❖几点说明: 实参可以是常量、变量或表达式。必须有确定的值。当函数调 用时,将实参的值传递给形参,若是数组名,则传送的是数组 首地址。
形参必须指定类型,只能是简单变量或数组,不能是常量或表 达式
第7章 函数
-------模块化设计
2020-6-17
谢谢阅读
主要内容
一、概述 二、函数定义的一般形式 三、函数参数和函数的值 四、函数的调用 五、函数的嵌套调用 六、函数的递归调用 七、数组作为函数参数 八、变量的存储类别 九、内部函数和外部函数 十、运行一个多文件的程序
一、概述
1、函数的概念:一个子程序段,能完成特定的功能。 存在位置:
2020-6-17
谢谢阅读
类型标识符 函数名() { 说明部分
语句 }
函数体
二、函数定义的一般形式
2、有参函数定义的一般形式
函数返回值类型 隐含为int型
现代风格: 函数体
类型标识符 { 说明部分
语句
}
函数名(形式参数表列)
例 有参函数(现代风格) int max(int x,int y) { int z;
例 空函数 dummy( ) {}
函数体为空
2020-6-17
谢谢阅读
三、函数参数和函数的值
1、形式参数和实际参数
❖形式参数:定义函数时函数名后面括号中的变量名
❖实际参数:调用函数时函数名后面括号中的表达式
例 比较两个数并输出大者
#include <stdio.h>
c=max(a,b); (main 函数) void main()
a1
ab
b1
b2
2020-6-17
谢谢阅读
一、概述
几点说明:
(1)一个源文件由一个或者多个函数组成。 (2)一个C程序由一个或者多个源文件组成。 (3)C程序的执行从main 函数开始。 (4)所有的子函数都是平行的。 (5)从用户的角度看,函数分库函数和自定义函数。 (6)函数形式:
①无参函数:主调函数无数据传送给被调函数,可 带或不带返回值。
1.c
2.h
函数1
函数3
函数2
函数4 函数5
2020-6-17
谢谢阅读
一、概述
(1) 各函数包含在一个文件中
#include <stdio.h>
void main( )
{void printstar( ); void print_message( ); printstar( );
运行结果: ****************************
{printf (“_ _ _ _ _How_do_you_do!\n”) ;}
2020-6-17
谢谢阅读
一、概述
(2)文件包含的方法 在主函数中使用文件包含预编译命令,将不在本文件 而在其它文件中的函数进行预编译处理把各文件中的函数 包含到本文件中来,然后一起进行编译、连接、运行。
#include “T7-1-2.c” #include “T7-1-3.c” main( ) {p1( ); p2( ) ; p1( ) ; }
②有参函数:主调函数与被调函数间有参数传递, 主调函数可将实参传送给被调函数的形参, 被调 函数的数据可返回主调函数。
2020-6-17
谢谢阅读
二、函数定义的一般形式
1、无参函数的定义形式
❖类型标识符: 用于指定函数带回的值的类型,不写时为int型。 不带回值时可以不写。 合法标识符
例 无参函数 printstar( ) { printf(“**********\n”); } 或 printstar(void ) { printf(“**********\n”); }
相关文档
最新文档