• C++ Primer Plus 第七章笔记


    目录

    函数基本知识

    没有返回值的函数:void函数

    有返回值的函数:

    函数原型

    1.为什么需要函数原型?

    2.函数原型的语法

    3.函数原型的功能

    按值传递函数参数

    形参和实参

    局部变量

    参数问题

    使用const指针参数

    调用自身的函数(递归)

    指向函数的指针

    1.获取函数的地址

    2.声明函数指针

    3.使用函数指针来调用函数


    函数基本知识

    要使用C++函数必须完成的工作:

    提供函数定义

    提供函数原型

    调用函数

    定义函数:可将函数分为两类,没有返回值的函数和有返回值的函数

    没有返回值的函数:void函数
    1. void FunctionName(parameters)
    2. {
    3. statement(s)
    4. return; // option
    5. }

            其中,FunctionName是函数名,parameters是参数列表。由于void函数没有返回值,因此在函数体中不需要使用return语句。void函数一般用于执行某个操作、产生某个副作用或输出结果等,而不需要返回任何值。

    有返回值的函数:

    有返回值的函数将生成一个值,并将它返回给调用函数。

    通用的格式:

    1. typeName FunctionName(parameterList)
    2. {
    3. statements
    4. return value
    5. }

    对于返回值的函数,必须使用 返回语句 以便将值返回给调用函数。

    值 - - - - 可以是 常量、变量、表达式。返回结果的类型必须是 typeName 类型 或 可以转换为typeName

    C++对返回值的类型有一定的限制:不能是数组。也可以是 其他的任何类型(整数、浮点数、指针、甚至是结构和对象)

    函数定义命令被调用函数应返回什么类型的数据。

    函数原型

    1.为什么需要函数原型?

    原型描述了函数编译器接口,也就是将函数返回值的类型以及参数的类型数量告诉编译器。

    避免使用函数原型的办法:在首次使用函数之前定义。

    2.函数原型的语法

    函数原型就是一个语句。必须以 分号(;) 结束。

    最简单的办法:复制函数中的函数头,然后添加分号。

    对于函数原型不要求提供变量名,有类型列表即可。

    而函数的参数列表 中,可以包括变量名、也可以不包括,原型中的变量名相当于占位符,可以不和函数定义中的变量名相同。

    3.函数原型的功能
    • 编译器正确处理函数返回值
    • 编译器检查使用的参数数目是否正确。
    • 编译器检查使用的参数类型是否正确。如果不正确,则转换为正确的类型

    按值传递函数参数

    形参和实参

    用于接收传递值的变量被称为形参。传递给函数的值叫做实参

    在C++标准中,使用参数(argument)来表示实参,而参量(parameter)来表示形参。所以,参数传递就是 将参数赋给参量

    局部变量

    在函数中声明的变量(包括参数)为该函数私有。

    在函数被调用时,计算机为其变量分配内存,函数结束,就释放内存。这种变量叫做局部变量。

    参数问题

    函数可以有多个参数,在调用函数是,使用逗号分隔开。

    如果函数的两个参数的类型相同,则必须分别指明每个参数的类型,不可以像声明常规变量那样组合在一起。

    按值传递函数参数是C++中最常用的函数参数传递方式之一。这种方式会把实参的值复制一份传递给函数,并在函数内对复制的值进行操作。按值传递的函数参数定义格式如下:

    1. void FunctionName(Type parameter)
    2. {
    3. // function body
    4. }

    其中,FunctionName是函数名,Type是参数的类型,parameter是参数的名称。

    使用const指针参数

            在C++中,可以将指针声明为const指针。const指针是指针常量,其指向的地址是固定的,不可以被改变。同时,也可以将指向const数据的指针声明为const指针,即指向const数据的指针常量。这种指针在函数参数中被用到时,被称为const指针参数。

            使用const指针参数可以防止函数内部对指针所指向的数据进行修改,在一些需要保护数据的情形下使用,提高代码的安全性。

    调用自身的函数(递归)

    函数调用自身的过程被称为递归。递归函数应该遵循以下两个重要的规则:

    1.基本情况(也称作递归终止条件):递归函数必须包含一个基本情况,当满足该情况时,递归将停止调用自身。

    2.递归情况:递归函数必须包含一个递归情况,当满足该情况时,函数将调用自身。

    指向函数的指针

    1.获取函数的地址

    获取函数地址的方式:使用函数名(后面不带参数)即可。

    要将函数作为参数传递,必须传递函数名。一定要区分传递的是函数地址还是函数的返回值。

    2.声明函数指针

    声明指向某种数据类型的指针时,必须指定指针指向的类型

    对于函数而言,声明指向函数的指针时,也必须指定指针指向的函数类型。也就是说,声明应像函数原型一样指出函数的信息。

    3.使用函数指针来调用函数

    使用指针来调用被指向的函数。

  • 相关阅读:
    2022年全球市场有机硅结构密封胶总体规模、主要生产商、主要地区、产品和应用细分研究报告
    固定代码移动到0000:0200
    服务器安装mysql后无法远程连接
    Julia绘图初步:Plots
    芯科蓝牙BG27开发笔记5-有坑就蒙
    MySQL库表占用空间排序
    JavaSE进阶21天---第二十一天---JavaSE(​单元测试(Junit)、注解(自定义注解、元注解)、XML、DTD约束、Schema约束)
    7_2数据结构与算法基础:::算法
    MySQL之账号管理
    【学习笔记】SOA服务设计原则(一)
  • 原文地址:https://blog.csdn.net/weixin_43780415/article/details/132839215