1、概述 2、函数分类 ①库函数 ①无参函数 1、原因 对于C编译系统提供的库函数,只需用#include指令把有关的头文件包含到本文件模块中即可。 2、定义方法 对于有返回值的函数,必须要有相应的返回值(通常是用return 语句进行返回) 在程序设计中有时会用到空函数,它的形式为 在一个函数中调用另外一个函数(即被调用函数)需要具备如下条件: 嵌套即在调用一个函数的过程中,又调用另一个函数,如下图所示: 1、定义 2、分类 说明:为了防止出现无终止地调用,应该用相关的控制语句(如if)来终止自身调用。 一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明。显然这里指的声明是狭义的,即非定义性声明。例如:文章目录
7.1 函数的作用
函数是指功能。每一个函数用来实现一个特定的功能,函数的名字反映其代表的功能。如下图是一个程序中函数调用的示意图。
库函数是由系统提供的,用户不必自己定义,可直接使用它们。
②用户自己定义的函数
在调用无参函数时,主调函数不向被调用函数传递数据。
②有参函数
主调函数在调用被调用函数时,通过参数向被调用函数传递数据。7.2 定义函数
C语言要求,在程序中用到的所有函数,必须“先定义,后使用”。
①指定函数的名字;
②指定函数的类型,即函数返回值的类型;
③指定函数的参数的名字和类型;
④指定函数的功能。
类型名 函数名(){ }
类型名 函数名(形式参数表列) { 函数体 }
类型名 函数名() { }
7.3 调用函数
函数名(实参列表);
若有参数,则用逗号隔开;若无参数,则括号中为空。
①函数调用语句
把函数调用单独作为一个语句。
②函数表达式
函数调用出现在另一个表达式中,这时要求函数带会一个确定的值以参加表达式的运算。
③函数参数
参数调用作为另一个函数调用的实参。
定义函数时括号中的参数为形参,调用该括号中的参数为实参,在调用函数过程中发生的实参与形参间的数据传递,常称为“虚实结合”。实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。
return语句的返回值类型必须和所定义的函数值类型相同,若无返回值则定义函数为void类型。7.4 对被调用函数的声明和函数原型
(1)首先被调用的函数必须是已经定义的函数。
(2)如果使用库函数,应该在本文件开头用#include指令进行调用。
(3)如果被调函数在主调函数之后,则应进行生命,函数原型格式如下:
类型名 函数名(形参类型1,形参类型2,…);
说明:
如果已在文件的开头(在所有函数之前),已对本文件中所调用的函数进行了生命,则在各函数中不必对其所调用的函数再作生命。写在所有函数前面的外部生命在整个文件范围中有效。7.5 函数的嵌套调用
7.6 函数的递归调用
在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。
在定义函数f的过程中,又要调用f函数,这是直接调用本函数,如下图所示:
如果在调用f1函数过程中要调用f2函数,而在调用f2函数过程中又要调用f1函数,这是间接调用本函数,如下图所示:
7.7 数组作为函数参数
数组元素可以用作函数实参,不能用作形参。在用数组元素作函数实参时,把实参的值传给形参,是“值传递方式”。数据传递的方向是从实参传到形参,单向传递。
用数组名既可以做形参也可以做实参,当用数组名作函数实参时,向形参(数组名或指针变量)传递的是数组首元素的地址。
可以用多维数组名作为函数的实参和形参,在被调用函数中对形参数组定义时可以指定每一维的大小,也可以省略第一维的大小说明。7.8 局部变量和全局变量
局部变量是指在程序中只在特定过程或函数中可以访问的变量。
①在函数的开头定义;
②在函数内的复合语句内定义;
③在函数的外部定义;
①只在所定义的函数中有效;
②不同函数可以使用相同变量名;
③形式参数只能在本函数内使用;
④在复合语句中的变量作用仅限于该语句。
在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量)。全局变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。一般全局变量名的第一个字母用大写表示。
设置全局变量增加了函数之间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,就能影响到其他函数中全局变量的值。7.9 变量的存储方式和生存周期
变量按存储位置划分有:
变量按生存期划分有:
一般地所有全局变量以及静态的局部变量存放在静态存储区中。
变量按作用域划分有:
7.10 关于变量的声明和定义
int main() { extern A; //是声明,不是定义。 //声明将已定义的外部变量A的作用域扩展到此 … return 0; } int A; //是定义,定义A为整型外部变量
7.11 内部函数和外部函数
如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static,即:
static 类型名 函数名(形参表);
内部函数又称静态函数,因为它是用static声明的。使用内部函数,可以使函数的作用域只局限于所在文件。
如果在定义函数时,在函数首部的最左端加关键字extern,则此函数是外部函数,可供其他文件调用。C语言规定,如果在定义函数时省略extern,则默认为外部函数
在需要调用此函数的其他文件中,需要对此函数作声明。在对此函数作声明时,要加关键字extern,表示该函数“是在其他文件中定义的外部函数”。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算