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版)

12.9 指针和引用

我们可以将一个引用看作一个自动解引用的不可变指针或一个对象的替代名字。指针和引用有以下几方面不同:

·为一个指针赋值会改变指针自身的值(不是指针指向的值)。

·为了得到一个指针,你通常需要使用new或&。

·为了访问一个指针指向的对象,你可以使用*或[]。

·为一个引用赋值会改变引用指向的值(不是引用自身的值)。

·在初始化一个引用之后,你不能让引用指向其他对象。

·为引用赋值执行深拷贝(赋值给引用的对象);为指针赋值不是这样(赋值给指针自身)。

·注意避免空指针。

例如:

对应的引用的例子如下:

注意最后一个例子;不仅是这种语言构造会失败,而是一个引用在初始化后就无法再指向其他对象了。如果你需要指向不同的对象,请使用指针。如需了解如何使用指针,请参见12.9.3节。

引用与指针都是通过使用内存地址来实现的。它们只是在地址的使用上不同,为编程人员提供稍有不同的特性。

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