Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

8.5.5 传引用

但是,如果我们确实希望函数修改其参数,又该怎么办呢?有时,我们有充足的理由需要这么做。例如,我们可能需要一个init()函数为vector元素赋值:

这里,我们希望init()函数修改参数vector,因此我们没有使用传值参数(拷贝参数值),也没有使用传常量引用参数(不允许修改参数),只是将实际参数的“简单引用”传递给形参。

让我们从更技术化的角度来探讨一下引用。引用是这样一种语法机制,它允许用户为一个对象声明一个新的名字。例如,int&是一个整型对象的引用,因此,我们可写出如下代码

也就是说,任何对r的使用实际上使用的是i。

引用的一个用途是作为简写形式。例如,我们可能用到如下二维vector

我们需要多次使用某个vector元素v[f(x)][g(x)]。v[f(x)][g(x)]是一个复杂的表达式,我们当然不愿意反复输入它。如果我们只是需要这个元素的值,那么可以声明下面这个变量

然后多次使用val即可。但如果我们既要从v[f(x)][g(x)]读取值,又要向它写入值呢?这时,引用就派上用场了: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python编程入门与实战

Python编程入门与实战

Posts & Telecom Press, Fabrizio Romano

Publisher Resources

ISBN: 9787111562252