c语言期末复习三

用函数实现模块化程序设计

一、定义函数

1.指定名字、指定类型、指定函数的参数名和类型、指定函数的功能

2.一般形式

类型名 函数名()

            {

                函数体

             }

二、调用函数

1.一般形式:函数名(实参表列)

2.作用:可作为单独一个语句,函数表达式以及另一个函数的参数

3.调用过程中的数据传递:系统会把实参的值传递给被调函数的形参

4.函数的返回值

(1)通过return语句获得

(2)返回值类型和函数类型一致

三、对被调函数的声明和函数原型

1.在主函数中对自定义函数进行声明,把函数名、函数参数的个数和类型等信息告知编译系统

2.函数的首行(即函数首部)称为函数原型

3.使用函数原型作声明 #声明时可省略参数名;若自定义函数在主函数之前就不必再次声明

四、函数的递归调用

1.定义:在调用一个函数的过程中又出现直接或间接地调用该函数本身

2.有限次、有终止

五、数组作为函数参数

1.数组元素作函数实参(!不能用作形参)#数据传递的方式是从实参到形参,单向传递 ##打擂法

2.一维数组名作函数参数,向形参传递的是数组首元素的地址  ##形参数组首元素和实参数组首元素具有同一地址###选择法

3.多维数组名作函数参数(!在定义第二维及二维以上的数组时,必须指定列数)

六、变量的存储方式和生存期

1.存储方式:静态存储动态存储

静态存储:程序运行期间由系统分配固定的存储空间 #全局变量

动态存储:程序运行期间根据需要进行动态分配存储空间 #形参,自动变量,函数调用时的现场保护和返回地址等

2.局部变量存储类别:

(1)自动(auto)变量:没有声明为静态存储类别的局部变量 #用关键字(auto)作声明,可省略,默认的自动存储类别为动态

(2)静态(static)局部变量:函数调用结束后,不释放储存单元的局部变量 #用关键字(static)作声明,只赋一次初值

(3)寄存器(register)变量:存放在CPU中的寄存器的局部变量 #用关键字(register)作声明,可提高效率

3.全局变量的存储类别:

(1)在一个文件内扩展外部变量的作用域 :在引用前,用关键字(extern)进行声明

(2)将外部变量的作用域扩展到其他文件 :在引用前,用关键字(extern)进行声明

(3)将外部变量的作用域限制在本文件内 :在定义外部变量时加一个static声明

·

七、内部函数和外部函数

1.内部函数(静态函数):只能被文本文件中其他函数调用的函数 #static 类型名 函数名 (形参表)

2.外部函数:可供其他文件调用的函数 #extern 类型名 函数名 (形参表)定义函数时省略,则默认为外部函数

指针

一、指针就是地址

1.通过指针能找到以它为地址的储存单元。

2.地址包括位置信息(内存编号,或称纯地址)和它所指向的数据的类型信息。

3.指针变量:专门用来存放另一个变量地址的变量(就是地址变量)

4.定义指针变量:类型名 *指针变量名 #必须指定基类型

5.引用指针变量

(1)给指针变量赋值

(2)引用指针变量指向的变量

(3)引用指针变量的值

#& 取地址运算符,是变量的地址:* 指针运算符,代表指针变量指向的对象

二、指针变量做函数参数

1.将一个变量地址传送到另一个函数中

2.可以得到多个变化了的值

3.不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指变量的值

三、通过指针引用数组

1.数组元素的指针就是数组元素的地址

2.如果指针变量p已经指向数组中的一个元素,则p+1指向同一数组的下一个元素,p-1指向同一数组的上一个元素

3.引用数组元素可以通过下标法(a[i]),也可以通过指针法(*(p+i))

4.*(p++)先取*p值,然后使p+1;*(++p)先使p+1,再取*p

四、通过指针引用字符串

五、指向函数的指针

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值