首页 > 其他 > 详细

函数基础

时间:2020-03-15 17:02:58      阅读:76      评论:0      收藏:0      [点我收藏+]

函数调用

调用运算符

调用运算符的形式是一对圆括号,它作用于一个表达式,该表达式是函数或者函数指针。调用表达式的类型就是函数的返回类型

调用函数

函数的调用完成两个任务:

  • 用实参初始化形参。
  • 将控制权从主调函数转移给被调函数,此时,主调函数的执行被暂时中断,被调函数开始执行。

return语句的执行也完成两个任务:

  • 返回 return语句中的值(如果有的话)。
  • 将控制权从被调函数转回到主调函数。

形参与实参

形参与实参:

  • 类型必须匹配。
  • 数量必须一致。

函数的形参列表

  • 定义空的形参列表的两种形式:
void f1(){/*...*/};             // 隐式地定义空形参列表
void f2(void){/*...*/};         // 显式地定义空形参列表
  • 两个形参不能重名。
  • 形参名是可选的。

局部对象

C++ 中 名字有作用域,对象有生命周期

  • 名字的作用域是程序文本的一部分,名字在其中可见。
  • 对象的生命周期是程序执行过程中,该对象存在的一段时间。

函数体是一个语句块,块构成新的作用域:

  • 形参和函数体内定义的变量统称为局部变量,仅在函数体内可见。
  • 局部变量会隐藏外层作用域中的同名变量。

自动对象和局部静态对象

函数体外定义的对象存在于整个程序执行过程中,此类对象在程序启动时创建,直到程序结束才会被销毁。而局部变量的声明周期则依赖于声明形式:

  • 自动对象,把只存在于块执行期间的对象称为自动对象,当块执行结束后,块中创建的自动对象的值就变成未定义的。局部变量对应的自动对象初始化分为两种情况:
    • 如果变量本身含有值,就用这个值进行初始化。
    • 如果变量本身不含有值,执行默认初始化,对于内置类型未初始化的局部变量将产生未定义的值。
  • 局部静态对象,将局部对象定义成static类型,局部变量的生命周期就将贯穿函数调用及之后的时间。
    • 局部静态对象在程序第一次经过对象定义语句时初始化,直到程序终止才被销毁,在此期间即使对象所在的函数结束执行也不会对它有影响。

函数声明

  • 同其它名字一样,函数的名字在使用之前必须声明,函数声明也称为函数原型
  • 函数只能定义一次,但是可以声明多次。
  • 函数的声明与函数的定义十分类似,区别在于函数声明无须函数体,用一个分号代替即可。
  • 由于函数声明不需要函数体,所以也无须形参的名字,但是通常为了更好地理解函数作用,还是带上形参的名字。

分离式编译

C++支持分离式编译,所谓分离式编译就是将程序分割到几个文件中,每个文件独立进行编译。

函数基础

原文:https://www.cnblogs.com/xiaojianliu/p/12498047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!