1 / 17
文档名称:

C语言程序设计.ppt

格式:ppt   页数:17页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言程序设计.ppt

上传人:drp539605 2015/9/10 文件大小:0 KB

下载得到文件列表

C语言程序设计.ppt

相关文档

文档介绍

文档介绍:C语言程序设计
同学们好!下面开始讲授C语言课程的第11讲内容。
第11、12讲函数
一、函数的定义
二、函数的调用
三、变量的作用域
四、递归函数
五、函数指针
六、函数应用举例
第11讲函数(1)
一、函数的定义
二、函数的调用
三、变量的作用域(上)
第11讲函数(1)
一、函数的定义
二、函数的调用
三、变量的作用域(上)
1
C语言程序设计
一、函数的定义

[<有效范围>] <类型名> <函数名> (<参数表>) <函数体>
有效范围:由所使用的保留字extern或static决定,若使用extern则称为全局函数或外部函数;若使用static则称为局部函数或静态函数。若<有效范围>选项被省略,则默认为是全局函数。对于全局函数,能够在一个程序的其他每个程序文件中被声明和调用;对于局部函数,则只能被所在的程序文件声明和调用。
类型名:给出函数通过return语句返回的值的类型,当使用保留字void作为类型名时,则不需要返回值。
函数名:是用户为函数所起的名字,它是一个符合C语言命名规定的标识符。通常用函数名反映该函数的功能。如用SUM表示求和。
第11讲函数(1)
一、函数的定义
二、函数的调用
三、变量的作用域(上)
2
C语言程序设计
参数表:又称形式参数表,它包含有任意多个参数说明,当多于一个时其前后两个参数说明项之间必须用逗号分开。每个参数说明包括类型名和参数名两项内容。
函数体:是一条复合语句,它以左花括号开始,到右花括号结束,中间为一条或若干条C语句。
函数头:在函数定义中,函数体之前的部分构成函数头,又称为函数原型。取出函数头再加上分号就构成该函数的原型声明语句。

(1)void f1() {...}
//返回无类型,无须返回值,函数名为f1
//参数表为空,即不带有任何参数。
(2)static void f2(int x) {...}
//文件域函数,无返回类型,函数名
//为f2,带有一个int型参数x
第11讲函数(1)
一、函数的定义
二、函数的调用
三、变量的作用域(上)
3
C语言程序设计
(3)int f3(int x,int* p) {...}
//全局域函数,返回值类型为int,
//函数名为f3,带有2个参数,一个为整型x,另一个为整型指针p
(4)char* f4(char a[]){...}
//返回类型为字符指针,函数名为f4,
//带有一个一维字符数组参数a,标记为后跟一对中括号
(5)void f5(float c[][N], int m) {...}
//无类型,函数名f5,
//第1个为二维单精度型数组参数c,第2个为整型参数m。
//当定义一个二维数组参数时,第二维的尺寸必须给出,并且必须是一个常量表达式,而第一维尺寸可给出也可以不给出。第一维的实际尺寸通常需要由另一个整型参数m来表示。

函数定义位置:可以出现在整个程序的任一个程序文件内的任何位置。
第11讲函数(1)
一、函数的定义
二、函数的调用
三、变量的作用域(上)
4
C语言程序设计
函数原型声明语句:在利用函数调用表达式调用一个函数之前,必须出现有该函数的原型声明语句或函数定义。如void f1(int x,int y);
函数的常量形参:即在一般的形参说明项前加上const修饰。如:
void f6(const float x, float y) {...} //x常量形参,y一般形参
void f7(const char* a, char* b) {...} //a常量形参,b一般形参
在f6函数体中只能读取x的值,不能改变它的值,对y可任意操作。
在f7函数体中只能读取a所指的字符或字符串,不能改变它,对b任意。
一维数组参数说明项的格式:<数据类型> <数组名>[]
等价于指针参数说明:<数据类型> *<指针变量名>
第11讲函数(1)
一、函数的定义
二、函数的调用
三、变量的作用域(上)
5
C语言程序设计
指针变量名就是数组参数说明中的数组名。如一个函数定义中的数组参数说明
int a[ ] //数组参数说明,指向int类型元素的指针
int* a //等价于指针参数说明
当调用它们时,对应的实参为同类型的数组名,访问它们既可以是指针方式也可以是下标方式。
二维数组参数说明项格式:<数据类型> <数组参数名>[ ][<列数>]
等价的指针参数说明:<数据类型> (*<指针参数名>)[<列数>]
如假定一个函数定义中的: