一 自定义函数
① 为什么需要自定义函数?
② 自定义函数组成
③ 求最大值
体会: '函数'的定义
④ 交换
1)错误
1) '有能力接收' --> '入参'类型和'传参'类型一致
2) 没有'swap'的原因 --> a,b和x,y'不是同一块'空间
2)正确
int* pa -->'指针变量'
*pa -->'解引用'操作,获取'值'
④ 函数参数
形参'实例化'之后其实'相当于'实参的一份'临时拷贝'
1) 只是把'值拷贝过来'
2) 临时'开辟空间'
⑤ 函数调用
⑥ 函数练习
++++++++'如何查找函数'++++++++
1) 先'想'函数怎么'调用'?
2) 再写'函数'怎么'实现'?
3) 不要在'函数'里面'打印',根据'返回值'自己'判断',更加独立了 -->'重要!!!'
1)计算素数
2)判断闰年
3)二分查找
需求:写一个函数,实现一个'整形有序'数组的'二分'查找
说明: 数组传递到'函数'是'本质上'是数组'首元素'的'指针'
引申: 不要在'函数'中计算'数组长度',函数外'传参'
辅助: 'debug'调试
++++++++++++'二分查找伪代码逻辑'++++++++++++
1) 因为不可能'一次'就'hit'到要查找数值,所以是一个'循环查找'过程-->'while循环'
2) 循环条件-->'有可搜索的区间'-->[left,right]-->'while(left<=right)'
3) 每次循环,发生变化-->搜索区间'依据上一次比较的结果'、'中间index'
4) 函数通过'不同的返回值'表示'最终'的状态
5) 二分法要求'有序(order)'
4)递增
写一个函数,每调用一次这个函数,就会将'num的值增加1'
细节: 传参,传一个'指针值'
⑦ 函数嵌套调用
函数和函数'之间'可以'有机的组合'的
1)案例2
⑧ 链式访问
概念:把一个函数的'返回值'作为另外一个函数的'参数'
1)案例1
2)案例2
3)案例3
⑨ 函数的声明和定义
代码'从前到后'扫描
细节: '函数'声明必须在'调用前',函数定义'位置'可以在'代码'最后面,不存在'语法错误',但是'不建议'
1)声明
2)定义
3)开发
1) 将'函数的声明'放到'.h'结尾的'头文件'中 -->用incluce # "" 双引号的形式引用
2) 将'函数的定义'放到'.c'结尾的文件中