1 什么是函数
1 具有特定功能的代码段,即某一段代码组合在一起实现某一功能
2 函数有名字,通过名字调用函数
3 函数的作用: 避免重复代码,简化程序,提高开发率,代码可读性
4 编写程序,分为若干个程序块,每个程序块有多个函数组成.每个函数都能实现某个功能,易于维护
2 定义函数的基本结构和要求
定义函数
返回值类型 函数名(形式参数列表){
功能代码;
return 返回值: // 如果函数有返回值,必须写return
}
返回值类型: void int char float ......
函数名: 驼峰命名 举例: printHello.
参数: 函数的材料
功能代码: 实现某一功能的代码
返回值: 提交材料之后,返回的结果,只有一个
注: 不同的函数中,可以使用相同的变量名
3 定义函数的方法
a 无返回值,无参数
//void hello(){ // 执行2 调用函数方法
// printf("蓝欧的伙伴们,大家早上好!\n");
// printf("好,很好,非常好,耶!");
//}
/***
无返回值 使用void
无参数 但必须写()
b 无返回值,有参数
void printSum(int a,int b){
printf("%d + %d = %d",a,b,a + b);
}
无返回值 使用void表示
有参数 参数变量可以任意,定义几个参数就要传入几个参数,打印两个数想加的结果
c 有返回值,无参数
int randomFor10To60(){
return arc4random() % 51 + 10;
}
(1) 声明返回值类型
(2) 函数体内要写return语句,否则报错
(3) 一个函数只有一个返回值
(4)实际返回值的类型,要和声明返回值的类型一致,如果不一致,强制转换成声明的返回值类型.
d 有返回值,有参数
int sumValue(int a,int b){
return a + b;
printf("我在return的后面");// return后面的代码永远不会执行
定义的函数要写在main函数的上边
3 调用函数(在main函数中进行)
调用函数: 使用函数名()
如果没有参数,也要把()写上
如果有参数,有几个参数,就给几个参数
参数可以是: 常量,变量,表达式
举例 int a = 3 int b = 4
sumValue(3 4); 调用函数
printf("%d",sumValue(3 4));
4 函数的声明
函数声明有两种一种写在main函数上边另一种自己建立两个文件.h和.m文件中,把函数声明写在.h文件中
把函数实现(函数定义)写在.m文件中,并在main函数前边引入,引入用#import "函数名",用#import<函数名>
引用的是系统的函数,在main函数中调用,调用用函数名
(1) 创建文件时文件名首字母大写,名字用驼峰命名法
举例
a 函数声明的地方
#import <Foundation/Foundation.h>
// 声明的地方: 参数列表可以不写变量名
// 声明: 求两个数的最大值
int maxValue(int a,int b);
// 声明: 求两个数的最小值
int minValue(int a,int b);
b 函数实现(定义)的地方
#import "Function.h"
// 定义: 求两个数的最大值
int maxValue(int a,int b){
int max = a > b ? a : b ;
return max;
}
// 定义: 求两个数的最小值
int minValue(int a,int b){
int min = a < b ? a : b;
return min;
}
c 函数调用的地方
int main(int argc, const char * argv[]) {
// 函数调用
// 声明: 求两个数的最大值
//最大值
printf("最大值:%d\n",maxValue(3,4));
//最小值
printf("最小值:%d\n",minValue(4,5));
5 数组作为函数的参数
a. 数组可以作为函数的参数
b. 数组作为函数的参数时,函数至少要设置两个形参;一个形参接收数组名,另一个形参接收数组元素.
c. 函数声明形式 返回值类型(int) a[],a[]中不需要填写元素个数
d. 函数调用形式 数组名作为参数,传入的其实是数组的首地址
f. 形参和实参的操作的是同一个内存空间.
举例
A 声明函数
#import <Foundation/Foundation.h>
// 声明: 打印整型数组中的元素
void sortArrayForAscend(int array[],int count);
B 实现函数(定义函数)
#import "FunctionAndArry.h"
// 定义: 打印整型数组中的元素
void printArray(int a[],int count){
//遍历打印
for (int i = 0; i < count; i++) {
printf("%d ",a[i] );
}
}
C 调用函数
int main(int argc, const char * argv[]) {
int array[] = {1,2,3,4,5};
printArray(array, 5);