5.4 赋值操作符
赋值操作符的左操作数必须是非const的左值。数组名是不可修改的左值,因此数组不可以作为赋值操作的目标。而下标和解引用操作符都返回左值。因此当将这两种操作用于非const数组时,其结果可作为赋值操作的左操作数。
5.4.1 赋值操作的右结合性
与下标和解引用操作符一样,赋值操作符也返回左值。同一,只要被赋值的每个操作数都具有相同的通用类型,c++语言允许将这多个赋值操作写在同一个表达式中。
5.4.2 赋值操作符具有低优先级
5.4.3 复合赋值操作符
复合赋值操作符的一般语法格式为:
a op=b;
其中op=可以是以下十个操作符之一:
+=,-=,*=,/=, %= (算术操作符)
<<=,>>=,&=,^= |=(bitwise 运算符)
每个复合赋值运算符实质上等价于,
a=a op b ;
这两种语法存在有一个显著的区别,使用复合赋值操作时,左操作数只计算了一次;而使用相似的长计算表达式时,该操作数计算了两次,第一是作为右操作数,而第二次则是作为左操作数。
5.5 自增和自减操作符
自增和自减运算都有前置和后置两种使用形式。
前置操作返回的是加1 后的值,所以返回对象本身,这是左值。而后置操作返回的是右值。
建议: 只有在必要时才使用后置操作符
前置操作需要做的工作更少,只需要加1后返回加1的结果即可。而后置操作符则必须先保存操作数原来的值,以便返回尚未加1之前的值作为操作的结果。对于int 型对象和指针,编译器可优化掉这项额外的工作,但是对于更多的复杂迭代器类型,这种额外的工作可能会要花费更大的代价。因此,养成使用前置操作这个好习惯,就不必担心性能差异的问题。
2.在单个表达式中组合使用解引用和自增操作
下面使用一种非常通用的c++编程模式输出ivec的内容:
vector<int>::iteractor iter =ivec.begin(); while (iter !=ivec.end()) cout<<*iter++<<endl;
由于后自增操作的优先级高于解引用操作,因此*iter++等效于*(iter++)。
建议:简介即是美
对于上面例子中代码,不建议用
cout<<*iter<<endl;
iter++;
来代替。
5.9 逗号操作符
逗号表达式是由一组由逗号分隔的表达式,这些表达式从左到右计算。逗号表达式的结果是其最右边表达式的值。
5.10 复合表达式的求值
含有两个和更多个操作符的表达式成为复合表达式。在复合表达式中,操作数和操作符的结合方式决定了整个表达式的值。
5.11 new和delete表达式
相关推荐
C++ primer plus 第五版的个人学习笔记,仅供大家学习参考。
《C++ Primer》第五版中文版学习笔记,适合完整看过原书一遍以上的人员复习与查阅使用。对于基础较好的,也可直接适用。
在C++编程语言中,重载操作符与转换是两个重要的概念,它们允许程序员自定义基本操作符的...通过阅读《C++ Primer》第四版第十四章的思维导图笔记,你可以深入学习这些概念,巩固理论知识,并在实际编程中应用它们。
C++ primer 5th,第十一章——关联容器,笔记&思维导图 按教材整理。
C++ Primer Plus 第9章内存模型和名称空间 new操作符以及名称空间的使用demo
C++ primer第五版精选笔记,关键点梳理,
《C++ Primer Plus 第六版 中文版课后编程习题解答》是学习C++编程语言的重要参考资料,它为读者提供了全面的习题解析,帮助深入理解和掌握C++的核心概念和技术。C++ Primer Plus是一本经典的C++入门教程,第六版在...
以上是C++ Primer第四版学习笔记中涉及的一些核心知识点。这些知识点涵盖了C++编程的基础语法、数据类型、容器、指针、内存管理以及控制结构等多个方面,对于初学者理解和掌握C++语言具有重要意义。希望这些内容能够...
《C++ Primer 第4版》是一本经典的C++编程...这份“C++ Primer 第4版”学习笔记包含了所有这些知识点的详细解释和示例,是深入学习C++的理想资料。通过学习和实践,你可以掌握C++编程的基础,并逐步提升到高级水平。
《C++ Primer 学习笔记》是一份针对C++初学者的重要参考资料,它基于C++ Primer第三版的内容,旨在帮助读者深入理解C++这门强大的编程语言。C++ Primer是学习C++的经典书籍,以其全面、深入且易于理解的讲解闻名,这...
在C++ Primer Plus这本书的第二章中,我们深入学习了C++的基础知识,包括变量、数据类型、运算符以及基本的输入输出操作。本章节的课后习题旨在巩固这些概念,通过实践来提高理解力和应用能力。下面将详细讨论2.7...
C++ Primer第四版的笔记涵盖了从基础语法到对象导向编程,再到模板和STL(Standard Template Library)等核心内容。根据描述,作者已经看到了第12章,这意味着笔记至少包含了以下主要知识点: 1. **基本语法**:...
《C++ Primer 第四版学习笔记》是一份深入学习C++编程语言的宝贵资源,它由一位经验丰富的学习者在2014年整理而成,旨在帮助初学者更有效地掌握C++的基础和进阶概念。这份笔记以清晰、实用的方式阐述了C++ Primer第...
第五章简要介绍了类的概念,成员函数被定义为类的一部分,有时被称为“类方法”。学习笔记中提醒了使用类时需考虑的三个关键问题:类名、定义位置以及支持的操作。对于初学者来说,理解类的目的和操作至关重要。 第...
《C++ Primer 5th》是一本广泛认可的C++编程入门教材,其第五版针对C++11及后续标准进行了全面更新。本笔记将概述其中的一些核心知识点,旨在帮助初学者快速掌握C++的基础。 首先,让我们从最简单的C++程序开始。一...
C++ Primer 是一本经典的C++入门书籍,其第四版提供了全面且深入的C++语言学习指南。笔记主要涵盖了基础和一些较为复杂的知识点,旨在帮助读者理解并掌握C++的核心概念。 1. **预处理器指令**: - `#pragma once` ...
### C++ Primer 类型转化 #### 一、类型转换概述 在C++中,类型转换是一种常见的编程技术,用于将一种数据类型转换为另一种数据类型。这种转换可以在编译时或运行时发生,并且可以是隐式的(自动进行)或显式的...
### 《C++ Primer》学习笔记(27)顺序容器 #### 9.1 顺序容器概述 在C++中,顺序容器是一类用于存储数据的容器,其中元素的位置依赖于其添加到容器中的顺序。这与关联容器形成了对比,关联容器中的元素位置是由其...
### C++ Primer Plus 第五版 学习笔记关键知识点概览 #### 一、C++ 源代码风格规范 1. **每行一条语句**:为了提高代码的可读性和可维护性,建议每行只写一条语句。 2. **花括号格式**: - 每个函数的两个花括号...