c语言在a程序修改b程序参数,C语言程序设计A课程辅导(6).doc

C语言程序设计A课程辅导(6)

---第6章: 函数

主要内容:

一、函数的定义

二、函数的调用

三、变量的作用域

四、递归函数

五、函数指针

六、函数应用举例

一、函数的定义

函数定义格式

[] ()

有效范围:由所使用的保留字extern或static决定,若使用extern则称为全局函数或外部函数;若使用static则称为局部函数或静态函数。若选项被省略,则默认为是全局函数。对于全局函数,能够在一个程序的其他每个程序文件中被声明和调用;对于局部函数,则只能被所在的程序文件声明和调用。

类型名:给出函数通过return语句返回的值的类型,当使用保留字void作为类型名时,则不需要返回值。

函数名:是用户为函数所起的名字,它是一个符合C语言命名规定的标识符。通常用函数名反映该函数的功能。如用SUM表示求和。

参数表:又称形式参数表,它包含有任意多个参数说明,当多于一个时其前后两个参数说明项之间必须用逗号分开。每个参数说明包括类型名和参数名两项内容。

函数体:是一条复合语句,它以左花括号开始,到右花括号结束,中间为一条或若干条C语句。

函数头:在函数定义中,函数体之前的部分构成函数头,又称为函数原型。取出函数头再加上分号就构成该函数的原型声明语句。

函数定义格式举例

(1) void f1() {...} //返回无类型,无须返回值,函数名为f1

//参数表为空,即不带有任何参数。

(2) static void f2(int x) {...} //文件域函数,无返回类型,函数名

//为f2,带有一个int型参数x

(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。

//标记是后跟两对中括号,并在第2个内给出常量(列数)。

函数定义和使用的几点说明

函数定义位置:可以出现在整个程序的任一个程序文件内的任何位置。

函数原型声明语句:在利用函数调用表达式调用一个函数之前,必须出现有该函数的原型声明语句或函数定义。

函数的常量形参:即在一般的形参说明项前加上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任意。

一维数组参数说明项的格式: []

等价于指针参数说明: *

指针变量名就是数组参数说明中的数组名。如一个函数定义中的数组参数说明

int a[] //数组参数说明,指向int类型元素的指针

int* a //等价于指针参数说明

当调用它们时,对应的实参为同类型的数组名,访问它们既可以是指针方式也可以是下标方式。

二维数组参数说明项格式: [][]

等价的指针参数说明: (*)[]

如假定一个函数定义中的:

二维数组参数说明: float c[][N] //指向N个float类型元素的指针

等价的指针参数说明: float(*c)[N]

当调用它们时,与c对应的实参为具有相同列数N的二维数组名,访问它们既可以是指针方式也可以是下标方式。

编写具体函数定义举例

例1:编写一个函数定义,求3个整数中的最大值。

int MaxValue(int x, int y, int z) //用x,y,z分别表示3个整数形参

{

int w;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值