C++ primer学习笔记 第六章

本章详细介绍了C++中的函数,包括函数基础、参数传递方式、返回类型和return语句、函数重载、特殊语言特性如默认实参、内联函数,以及函数匹配和函数指针等内容。讲解了形参与实参的关系,值传递和引用传递的差异,函数局部对象的生命周期,以及如何通过引用形参返回多个值。此外,还探讨了函数声明、分离式编译的原理,以及如何利用默认实参和内联函数优化代码。
摘要由CSDN通过智能技术生成

第六章 函数

函数可以有0个或者多个参数,可以重载函数,也就是同一个名字可以对应不同的函数。

1.函数基础

函数包括返回类型,函数名,形参列表,函数体。

**函数三要素是返回类型,函数名,形参列表,描述了函数的接口,**说明了调用该函数所需的全部信息。

调用函数时用调用运算符(),()内时实参列表,使用实参初始化函数的形参。

实参是形参的初始值,二者类型需要匹配(可能会发生隐式类型转换),数量需要一致。形参可以为空。

函数返回类型不能是数组或函数类型,但可以是指向数组或者函数的指针。

1.局部对象

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

函数是一个语句块,块构成一个新的作用域。所以形参和函数体内部的变量统称为局部变量,局部变量的生命周期依赖于定义的方式。(与之不同的是,函数体之外定义的对象存在于程序的整个执行过程,此类对象在程序启动时创建,程序结束时才会被销毁)

自动对象:普通局部变量对应的对象在函数控制路径经过变量定义的语句时创建该对象,到达块所在末尾时销毁它。块执行结束后,自动对象的值自动变成未定义。形参是自动对象。

局部静态对象:将变量定义成static类型,局部变量的生命周期贯穿于定义到整个程序终止。

static int a=0;

2.函数声明(函数原型)

函数只能被定义一次,但可以声明多次。如果一个函数用于不会用到,可以只声明不定义。

函数声明无需函数体,用分号代替即可。可以不写形参,但写上更易于理解。

和变量一样,建议函数在头文件中声明而在源文件中定义。含有函数声明的头文件应该被包含到定义函数的源文件中。

3.分离式编译

编译和链接多个源文件。如果我们只修改了其中一个源文件,只需重新编译那个改动改动了的文件。

分离式编译会产生后缀.obj(windoes)或者.o(UNIX)的文件,后缀名的含义式该文件包含对象代码。

2.参数传递

形参初始化机理和变量初始化一样。相当于用实参给形参赋值。

1.值传递/传值参数

**实参的值被拷贝给形参,函数对形参所做的操作不会影响到实参。**比如有个

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值