C++ Primer Plus 第七章笔记

2023-09-14 23:46:49

目录

函数基本知识

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

有返回值的函数:

函数原型

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

2.函数原型的语法

3.函数原型的功能

按值传递函数参数

形参和实参

局部变量

参数问题

使用const指针参数

调用自身的函数(递归)

指向函数的指针

1.获取函数的地址

2.声明函数指针

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


函数基本知识

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

提供函数定义

提供函数原型

调用函数

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

没有返回值的函数:void函数
void FunctionName(parameters)
{
    statement(s)
    return; // option
}
 

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

有返回值的函数:

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

通用的格式:

typeName FunctionName(parameterList)
{
    statements
    return value
}

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

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

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

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

函数原型

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

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

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

2.函数原型的语法

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

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

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

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

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

按值传递函数参数

形参和实参

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

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

局部变量

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

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

参数问题

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

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

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

void FunctionName(Type parameter)
{
    // function body
}
 

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

使用const指针参数

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

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

调用自身的函数(递归)

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

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

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

指向函数的指针

1.获取函数的地址

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

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

2.声明函数指针

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

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

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

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

更多推荐

2023年日经225指数研究报告

第一章指数概况1.1概述日经225指数,又被称为日经平均股票价格或日经225平均指数,通常被称为日经或日经指数,是东京证券交易所的一个重要股价指数。该指数自1950年起由日本经济新闻(TheNikkei)日报计算,它是一个以价格为权重的指数,以日元(JP¥)为单位,其组成部分每年审查一次。该指数涵盖了东京证券交易所第一

Git标签管理:从创建到推送的完整指南

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

RabbitMQ - 消息堆积问题的最佳解决方案?惰性队列

目录一、惰性队列1.1、消息堆积问题1.2、消息堆积问题的解决方法从消费者的角度:从队列的角度:1.3、引入惰性队列1.3.1、什么是惰性队列1.3.2、惰性队列的使用1.3.3、效果演示一、惰性队列1.1、消息堆积问题当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息到达上限

滴滴可观测平台 Metrics 指标实时计算如何实现了又准又省?

在滴滴,可观测平台的Metrics数据有一些实时计算的需求,承载这些实时计算需求的是一套又一套的Flink任务。之所以会有多套Flink任务,是因为每个服务按照其业务观测需要不同的指标计算,也就对应了不同数据处理拓扑。我们尽力抽象用户相同的计算需求,不过由于Flink实时计算任务开发模式和实时计算框架的限制,这些观测指

专业软件测评中心:关于软件性能测试的实用建议

软件性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。一、软件性能测试的实用建议1、制定清晰的测试目标:明确测试目标和需求,以便更好地组织测试活动。2、选择合适的测试工具:根据测试需求选择适合的性能测试工具

支付宝支付对接-附带完整代码!!

支付宝对接文章目录支付宝对接1、大纲1.1整体业务流程图1.2、开发流程图1.3、核心参数1.4、支付宝开放平台1.5、支付应用场景1.6、支付宝入驻2、环境准备2.1首先注册自己的支付宝账号2.2沙箱环境2.3支持产品列表3、项目实现3.1、项目代码地址3.2、代码层级3.3、快速启动3.3.1环境准备3.3.2定义

PTA:L1-002 打印沙漏

L1-002打印沙漏分数20本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定

ChatGPT追祖寻宗:GPT-3技术报告要点解读

论文地址:https://arxiv.org/abs/2005.14165往期相关文章:ChatGPT追祖寻宗:GPT-1论文要点解读_五点钟科技的博客-CSDN博客ChatGPT追祖寻宗:GPT-2论文要点解读_五点钟科技的博客-CSDN博客本文的标题之所以取名技术报告而不是论文,是因为长达63页的GPT-3的这篇文

大数据科普

文章目录什么是大数据?大数据的特点大数据应用的挑战大数据技术大数据的发展前景什么是大数据?大数据是指规模巨大、增长快速、多样化的数据资源。随着数字化时代的到来,数据量呈现几何级别的增长,大数据的应用也越发广泛,如金融、医疗、物流等各个领域。大数据的特点大数据的特点主要体现在以下四个方面:量大:大数据的数据量通常是以TB

leetcode 399 除法求值

399.除法求值提示给你一个变量对数组equations和一个实数值数组values作为已知条件,其中equations[i]=[Ai,Bi]和values[i]共同表示等式Ai/Bi=values[i]。每个Ai或Bi是一个表示单个变量的字符串。另有一些以数组queries表示的问题,其中queries[j]=[Cj

使用yum进行软件安装的基础命令

在Linux系统中,特别是基于RedHat、CentOS或Fedora的系统,yum(YellowdogUpdaterModified)是一个非常常用的包管理工具,用于自动下载和安装软件包以及其依赖关系。首先,请确保您的系统中已经安装了yum。通常,基于RedHat的系统默认会安装这个工具。以下是一些使用yum进行软件

热文推荐