1.函數:能夠實現特定功能的代碼片段
函数的声明形式 函数返回类型 函数名称(参数类型 参数名,参数类型 参数名);
说明:
函数声明和定义的区别:函数声明没有函数体 与变量声明类似,在声明末尾有分号
2.自定义函数
把完成某一特定功能的语句封装成函数,通过函数调用完成该功能
若干个函数可以放在不同的文件中
有利于简化程序结构
有利于代码复用
3.函数的调用方法
1) 表达式方式:函数调用出现在一个表达式中,这种表达式称为函数表达式。这时要求函数返回一个确定值以参加表达式的运算。 例如:y = max(a,b) + max(c,d),两次函数调用都是表达式的一部分,分别以返回a与b、c与d的最大值参与表达式运算。
2) 语句方式:把函数 调用作为一个语句。
3) 参数方式:函数调用作为另一个函数的实参。 例如:max(max(a,b),max(c,d)),max(a,b)与max(c,d)两次函数调用作 为另一次max()函数调用的实参,用来求出a、b、c、d的最大值。 以参数方式调用实际上是表达式调用方式的一种特殊情况。
4.函数的参数与返回值
参数:参与运算的值
返回值:运算的结果
函数可以没有返回值,也可以没有参数
5.函数的形参与实参
形参:在函数声明或定义形式中函数名后的内容
有类型描述,是变量
实参:函数调用形式中函数名后的内容
通常没有类型描述,可为常量也可为变量
6.函数调用过程:
实参和形参类型和个数应该匹配
按值传递:实参和形参是两块不同的空间,只是把实参的值复制一份存放到形参变量中
7.局部变量与全局变量
局部变量:在函数内容定义的变量(形参也属于局部变量)
作用域:从该变量定义定义语句开始到’}’结束
全局变量:在函数外部定义的变量
作用域::从该变量定义语句开始,如无特别限制可在各文件中使用
只能使用常量对其进行初始化
若全局变量与局部变量重名则局部变量起作用(就近原则)
static 修飾全局變量:其作用域僅為本文件內
修飾局部變量:其作用域不變,生命週期變為本文件內
8.函數名本質上為一個地址
9.递归:在描述该概念的时候又用到了概念本身,对应到函数就是函数实现中又有对自身的调用
递归就是函数的不断调用,但是调用必须有终止条件,否则函数会布线运行下去,系统终将崩溃
base case必须存在
转载于:https://blog.51cto.com/xiaohei198975/1203742