如何理解库函数
库是已经写好的、成熟的、可复用的代码。每个程序都需要依赖很多底层库,不可能每个人的代码从零开始编写代码,因此库的存在具有非常重要的意义。在我们的开发的应用中经常有一些公共代码是需要反复使用的,就把这些代码编译为库文件。库可以简单看成一组目标文件的集合,将这些目标文件经过压缩打包之后形成的一个文件。像在Windows这样的平台上,最常用的c语言库是由集成按开发环境所附带的运行库,这些库一般由编译厂商提供
如何理解指针作为函数参数的输入和输出特性
输入特性:主调函数分配空间 背调函数使用该空间
输出特性:被调用分配空间 主调函数使用该空间
函数名的意义
在c语言中 函数名代表的是函数的入口地址
函数的形参和实参的区别
int data1=0; int data2=0; int my_add(int x, int y) { return x+y; } int main() { my_add(data1,data2); } |
形参:在函数定义时候定义形参(例如:x,y),一般由形参类型和形参名组成。在定义函数是不会为形参开辟空间,只有在函数调用时系统才会为形参开辟空间
实参:在函数调用时传递给函数的实际参数(例如:data1,data2),他在函数调用前就存在的
函数的作用
将为同一功能服务的代码,封装在一起,通过函数名直接调用,提高代码的重用
函数的定义与函数的声明的区别
函数定义:是指对函数功能的确立,包括指定函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。
函数的声明:是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统,以便在对包含函数调用的语句进行编译时,据此对其进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)
从定义的角度为函数分类
库函数(c语言库)、自定义函数、系统调用(内核提供给用户的函数接口)
从有无参数的角度对函数分类
无参的函数:不能将函数外部的数据 传递 给函数内部
有参的函数:通过参数 将函数外部的数据 传递到函数内部
(参数:函数外部数据 到 函数内部的 桥梁)
普通变量作为函数的参数特点
函数内部可以借助函数的参数使用外部变量的值,但是函数内部不能通过形参间接修改外部变量的值(单向传递中的值传递)
一维数组作为函数的参数的特点
数组作为函数的参数,会被优化成数组元素指针变量,在调用函数的时候实参只需要传递数组的首元素地址就可以操作数组的所有元素
在32位平台Void func(int arr[5]){}则sizeof(arr)的结果
4字节
二维数组作为函数的特点
二维数组作为函数的参数会被优化成数组指针,函数内部可以借助该数组指针操作二维数组的所有元素。在操作数组元素上该数组指针等价于函数外部的二维数组名