函数

IOS学习第8天

函数

  • 使用函数时注意的细节

* 1.什么时候用函数 *

当有一段代码需要重用的时候,那么可以将这些代码封装到一个函数中

什么时候想要执行代码,什么时候调用即可

* 2.使用函数的好处:*

1)减少代码冗余
2)修改维护炒鸡方便
3)屏蔽代码的实现,我们只需要知道函数的功能,而不需要关心怎么实现

  • 局部变量和全局变量的异同点

1.变量:在内存中用来存储数据开辟的那块空间

局部变量:
    定义在函数或者代码块内部的变量
全局变量:
    定义在所有函数和代码块外部的变量

2.全局变量和局部变量的异同点

1)相同点

都是内存中的若干个字节,用来存储数据用的

2)不同点

1>定义的位置不同
2>作用域不同
局部变量:只在定义局部变量的代码中有效
全局变量:从全局变量定义的那一行开始,往下都有效
3>默认值不同
局部变量:如果没有赋初值,那么系统会给他一个垃圾值
全局变量:一般来说,全局变量如果没有赋值,那么他的值是零    char类型的初值为'\0';
4>生命周期不同(创建和回收时间不同)
局部变量:只有CPU执行到该行代码的时候才会被创建,代码块或者函数执行完了就会被回收
全局变量:只要程序已启动,那么全局变量就会被创建,整个程序停止了,全局变量才会被回收

* 当一个变量需要被所有函数访问的时候,要使用全局变量 *

函数的参数

函数什么时候需要参数
    当某个函数要完成一个特定功能 ,但是需要一些其他数据的时候
    比如 一个函数 他的功能是判断一个整数 是否是偶数 但是被调函数并不知道这个数是多少
    主调函数知道,只有通过函数的参数传递给被调函数

函数参数的本质:定义在函数内部的局部变量

  • 参数可以实现的效果

1.参数的最大的作用:把主调函数中的数据 传递给被调函数

2.实际参数可是常量 也可以是变量,还可以是表达式

3.实参 传递数据给 形参的过程 是一个赋值的过程 (copy的过程)

结论:在函数内部 是不能通过传递进来的变量 来改变主调函数中变量的值

  • 什么时候需要带参数
函数:完成特定功能的代码块
    当一个函数要完成一个特定功能时 发现需要一个数据 但是函数内部 并不知道这个数是多少时候
    需要主调函数传递过来,那么这时候这个被调函数就需要有一个参数,接收主调函数传递过来的数据
    ```

调用函数的过程中,实参给形参的赋值过程如果实参的类型和形参不同会怎么样?
实参和形参的类型 是可以不一样的
如果类型不一样 会出现隐式转换, 会把实参 转成形参类型的
“`

return关键字

return关键字使用在函数体之中的
    它的作用:在函数体中的return关键字 表示 "立即结束"这个函数的执行
    所以说 return的作用就是 "提前结束这个函数"
    ```
###使用带返回值的函数需要注意的细节

1.函数的返回值类型 代表 有这么一个类型的数据返回给调用者
这个时候调用者 才能知道用什么数据类型的变量来接收

2.void 表示 函数执行完之后 没有任何数据来返回给调用者,调用者也不需要接收

3.一旦函数指定了返回值类型,那么就必须在函数结束前返回一个对应类型的数据

4.一旦函数定义了返回值,那么你一定要保证 每一个分支 结束之前必须有返回值
Control may reach end of non-void function
表达你的函数 可能在某种情况下没有返回值

5.return 的使用,不管是在 有返回值 还是没有返回值的函数中,都表示”结束”这个函数

在无返回值的函数中,直接用 也可以不用
在有返回值的函数中,必须使用 return 数据

“`

函数的声明和定义

  • 注意点

1>不要把声明函数的语句写在调用语句的后面

2>函数的声明不一定非要写在所有函数的外面,只要写在你调用之前就可以

3>当被调函数定义在主调函数之前,此时可以不声明函数
被调函数—>被调用的函数—->addNum1andNum2
主调函数—>调用函数的函数—>main函数

4>函数声明的返回值和参数的类型,和函数定义的时候的返回值和参数的类型必须一致(规范)

5>函数声明的时候参数的名字可以不写,但是定义的时候必须写–>最好都写上

6>当函数的返回值是int,可以不声明—>不要这样做

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值