字符串的复制c语言浙江大学,浙江大学C语言总复习题—函数(13页)-原创力文档...

第6章 函 数

学习和解题要点

1.函数的概念和作用

在 C 程序设计中,为了能完成某种特定的功能,并且能适应不同的被加工数据,返回不同的结果,通常都用函数的形式来设计程序。一个较大的问题(程序),一般都被分解成若干个功能来完成,每个功能即一个函数--程序模块,这也是结构化程序设计的思想。

在 C 语言中一般函数可写成:

〈数据类型〉 〈函数名〉( 〈形参1〉, 〈形参2〉, .....)

{ ........

........

return(〈返回值〉);

}

在某个地方要用函数时,可调用函数:〈函数名〉(〈实参1〉, 〈实参2〉, .....)

因此,函数可比仿成一个加工器(黑盒):

加工

加工 ( 函数 )

来料说明 ( 形参 )

产品 ( 函数返回值 )

比如函数是磨粉机,形参相当于来料说明,如可加工五谷,函数值是加工结果,如

磨成的粉。调用函数即开始使用磨粉机,实参用具体的大米,返回大米粉。实参用

小麦,返回面粉等等。

2.函数的定义

存储类型 (返回的)数据类型 函数名(形参说明语句序列) (注:此地分不能有分号)

{

函数内用的变量说明序列;(临时工作单元)

可执行语句序列;(包括 return(表达式)语句)

}

函数的返回值一般是通过 return 语句获得的。

返回的数据类型说明一般应该和return语句中的表达式类型一致,若不一致则以数据类型说明为准。如函数中没有 return 语句或 return;函数无返回值,返回一个用户很难确定的值。

说明:函数的数据类型:int char short long float double *类型。

缺省为 int型。

不返回值为 void型。

函数的存储类型:内部函数 本文件内有效 static

外部函数 可被其他文件函数调用 extern

3.函数调用: 函数名(实参表)

可以为独立语句: 函数名(实参表); 表达式中: 变量=函数名(实参表)+其他式;

实参表与形参表的对应一般要做到三个一致:

个数一致

类型一致(在学指针时,指针变量和地址对应)

次序一致

实参都应该己预先说明的,并有确定的值。

一般,函数都应先定义后调用。对函数返回值是 int 或 char 的可先调用后定义。

如果非int 或 char型的函数一定要先调用后定义,则在函数调用语句前先作一个“申明”, 申明的方法是相当于把函数头部抄一遍,加一个分号:

存储类型 (返回的)数据类型 函数名(形参表);(注:此地分号不可少)

4.函数调用的数据传递

把实参数据复制给形参,形参变量内数据变化不影响实参 --值调用。

x 45y 50b 50

x 45

y 50

b 50

a 45

main()

{ int a=45,b=50;

c=max(a,b);

}

int max(int x,int y)

{ .............}

把实参的地址传给形参,这时形参变量应为指针变量,因此形参实参共用一个内存

位置,形参值的变化也即实参值的变化 --地址调用(名调用)。

xa

x

a

y

80

50

b

temp

50

main()

{ int a=50,b=80;

swap(&a,&b);

}

void swap(int *x,int *y)

{ int temp;

temp=*x; *x=*y; *y=temp;

}

这种方法可使函数除 return 返回值外,还可通过形参返回值。

数组与函数

指定的个别数组元素作实参时,是值调用。

在 C 语言中,由于数组名作为地址,因此实参和变参在以下四种情况时都为

地址调用: 实参和形参都用数组名

实参用数组名,形

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值