iOS 阶段学习第七天笔记(函数、递归)
iOS学习(C语言)知识点整理笔记
一、函数
1)概念:具有特定功能的代码块的封装
2)函数的定义: 函数类型+函数名(形参列表)
函数类型 函数名(形参类型1 形参名1,形参类型2 形参名2.....){
函数体;//函数的实现
}
3)函数名要符合标示符的定义
4)函数的返回类型可为空,为空用void;也可以是其他数据类型。
5)void函数的调用:函数名(); void类型不能用任何类型去接收。
6)int 类型函数的调用:定义int类型的数据去接收函数的返回值,例如: int sum=add(x,y); 有时候也可以忽略 返回值
7)return 函数的返回 ,void函数的return语句可以省略也可以return 空,return语句可以有多条,以执行到的第一句为准。
8)非void的其他类型,return 表达式类型要和定义的类型匹配
9)返回类型与接收类型不匹配时不一定会报错,但会造成精度的损失,例如:int类型的函数用char类型接收
10)函数的好处:将不同的功能实现封装起来,容易阅读和维护;便于分工,调用的人可以不关心具体的实现。
11)函数使用的注意点:
1、函数名要言之有物,名字和功能一致。
2、接口要精简(形参,返回值)
3、实现的功能要单一,不要混杂。
4、对外的函数接口要由详细的注释
12)局部变量:从变量定义的位置开始到定义所在的方法体的“}”结束
13)函数运行的过程:
1、给形参开辟空间
2、实际参数给形式参数传值
3、形式参数参与运算
4、return 的时候形参销毁
14)全局变量:定义在方法体外面的变量,优点所有函数都能访问,缺点所有函数都能修改不安全。
15).c文件写方法的实现;.h文件放函数的声明。
16)函数的声明: 函数返回类型 函数名(形参类型1 形参名1,形参类型2 形参名2....)。
17)函数在main后面定义,但是必须要在main之前声明。
18)头文件存放内容:
1、函数的声明
2、类型定义 #typedef
3、宏定义 #define
19)函数都是平级的可以相互调用,也可以自己调用自己。
二、递归
1)概念:函数自己调用自己的一个过程
2)递归的优点是使代码结构层次更清晰使程序更简洁,缺点是占用资源太多,可能造成堆栈溢出。
3)使用递归算法 计算斐波拉契数列
实现代码:
int fblq(int n){
if(n==||n==)
return ;
else
return fblq(n-)+fblq(n-);
}
int main(){
int len=;
for (int i=; i<=len; i++) {
printf("%d ",fblq(i));
}
return ;
}
4)使用递归求两个数的最大公约数
实现代码:
int ComDiv(int x,int y){
if(x%y==)
return y;
else
return ComDiv(y,x%y);
}
int main(){
printf(“%d”, ComDiv(,));
return ;
}
5)使用递归算法实现猴子吃桃问题的统计
实现代码:
int MonkeyEatPeach(int day){
if(day==)
return ;
printf("day=%d\n",day);
return *MonkeyEatPeach(day+)+;
}
iOS 阶段学习第七天笔记(函数、递归)的更多相关文章
- iOS阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- iOS阶段学习第三天笔记(运算符)
iOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运 ...
- iOS 阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- iOS 阶段学习第三天笔记(运算符)
iOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运 ...
- iOS 阶段学习第24天笔记(Block的介绍)
iOS学习(OC语言)知识点整理 一.Block 的介绍 1)概念: block 是一种数据类型,类似于C语言中没有名字的函数,可以接收参数,也可以返回值与C函数一样被调用 封装一段代码 可以在任何地 ...
- iOS 阶段学习第22天笔记(JSON数据格式介绍)
iOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)UR ...
- iOS阶段学习第16天笔记(Category-NSSet-SEL-NSIndexSet 操作)
iOS学习(OC语言)知识点整理 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 ...
- iOS阶段学习第14天笔记(NSString与NSMutableString)
iOS学习(OC语言)知识点整理 一.OC字符串的操作 1)OC中字符串分为两种: 1.不可变字符串NSString:不能修改对象内容,但是可以改变对象的指针. 2.可变字符串NSMutableStr ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
随机推荐
- AWS re:Invent 2014回顾
亚马逊在2014年11月11-14日的拉斯维加斯举行了一年一度的re:Invent大会.在今年的大会上,亚马逊一股脑发布和更新了很多服务.现在就由我来带领大家了解一下这些新服务. 安全及规范相关 AW ...
- Ember.js实现单页面应用程序
1.1.1 摘要 单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序. SPA使用AJAX和HTML5创建流畅且响应迅速的Web应用程序,不会经常 ...
- 微软承诺将在今年的 Visual C++ 更新中加入 Clang 编译器
微软最近发布将在2015年11月 Visual C++ 更新中加入 Clang 编译器 ,Clang 开源编译器以相比GCC更快的编译速度和更优的错误提示著称. Clang关于C,C++,及Objec ...
- C# 加密–RSA前端与后台的加密&解密
1. 前言 本问是根据网上很多文章的总结得到的. 2. 介绍 RSA加密算法是一种非对称加密算法. 对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法 ...
- java 堆栈分析4
jprofiler ,又是一款好工具... —— 不过显然,我觉得有了jvisualvm就足够了,难道它会比jvisualvm还强大很多!?? 什么时候需要它呢?它有什么特别好用的地方吗? 带来什么方 ...
- swift 创建桥接头文件
1,创建iOS 下source模块里的header file 文件,这个文件要注意命名的规则:xxx-Brigding-Header.h 2,到build setting 里 Swift Compil ...
- fir.im Weekly - Swift 3.0 的迁移适配指南
无论你是移动开发者,还是桌面端开发者,或者正在IoT领域探索的技术人员,那么应该更加关注 iDev 全平台开发者大会,也许是后半年 iOS 开发者最盛大的技术盛宴.既有知名公司带来专业视野,又有从 S ...
- 每天一个linux命令(14):head 命令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...
- Jetty 服务器的知识
Jetty 服务器的知识 也许你还没有听说过这个Jetty服务器,不过它确实是一种比较轻量级的Java服务器,和Tomcat一样,专门解释JavaWeb程序的服务器.因为在之前学习Java Web 的 ...
- 被废了的display:box弹性盒模型
这几天在研究弹性布局,看书中写的是display:box,结果在chrome浏览器中是正常的,想着移动端大部分浏览器也是webkit内核的应该也没啥问题,结果确实没问题,但仔细一看,高度呢?好吧,严重 ...