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.6.1 表达式计算

表达式中子表达式计算顺序所遵循的规则,是按优化编译器的需求设计的,而不是为了方便程序员。这很不幸,但不管怎样你应该避免复杂的表达式,有一条简单的原则可以帮你远离麻烦:如果你在表达式中改变一个变量的值,不要在同一个表达式中再读或写这个变量。例如:

不幸的是,如果你写出这样有问题的代码,并不是所有编译器都能给出警告。这段代码的问题在于,如果你将代码迁移到另外一台计算机,使用另一个编译器,或者改变编译器优化设置,运行结果不保证一致。不同的编译器确实会对这段代码得到不同结果,所以不要这么编写程序。

特别要注意的是,=(赋值符)在表达式中只是又一种运算符而已,并没有特殊的地位,因此不能保证赋值符左边的子表达式在右边的子表达式之前计算。这就是为什么v[++i]=i;结果是不确定的。

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