`

C++ primer 笔记第五章

阅读更多

 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 plus 第五版的个人学习笔记,仅供大家学习参考。

    《C++ Primer》第五版中文版学习笔记

    《C++ Primer》第五版中文版学习笔记,适合完整看过原书一遍以上的人员复习与查阅使用。对于基础较好的,也可直接适用。

    C++ Primer 第十四章 重载操作符与转换 思维导图笔记

    在C++编程语言中,重载操作符与转换是两个重要的概念,它们允许程序员自定义基本操作符的...通过阅读《C++ Primer》第四版第十四章的思维导图笔记,你可以深入学习这些概念,巩固理论知识,并在实际编程中应用它们。

    C++ primer 5th,第十一章——关联容器

    C++ primer 5th,第十一章——关联容器,笔记&思维导图 按教材整理。

    C++Primer Plus学习笔记(五)

    C++ Primer Plus 第9章内存模型和名称空间 new操作符以及名称空间的使用demo

    C++ primer第五版精选笔记

    C++ primer第五版精选笔记,关键点梳理,

    C++ primer plus 第六版 中文版课后编程习题解答

    《C++ Primer Plus 第六版 中文版课后编程习题解答》是学习C++编程语言的重要参考资料,它为读者提供了全面的习题解析,帮助深入理解和掌握C++的核心概念和技术。C++ Primer Plus是一本经典的C++入门教程,第六版在...

    C++ Primer 中文版(第四版)学习笔记~

    以上是C++ Primer第四版学习笔记中涉及的一些核心知识点。这些知识点涵盖了C++编程的基础语法、数据类型、容器、指针、内存管理以及控制结构等多个方面,对于初学者理解和掌握C++语言具有重要意义。希望这些内容能够...

    c++ primer第4版学习笔记

    《C++ Primer 第4版》是一本经典的C++编程...这份“C++ Primer 第4版”学习笔记包含了所有这些知识点的详细解释和示例,是深入学习C++的理想资料。通过学习和实践,你可以掌握C++编程的基础,并逐步提升到高级水平。

    C++ Primer 学习笔记

    《C++ Primer 学习笔记》是一份针对C++初学者的重要参考资料,它基于C++ Primer第三版的内容,旨在帮助读者深入理解C++这门强大的编程语言。C++ Primer是学习C++的经典书籍,以其全面、深入且易于理解的讲解闻名,这...

    C++ Primer Plus第二章课后题答案(二)笔记

    在C++ Primer Plus这本书的第二章中,我们深入学习了C++的基础知识,包括变量、数据类型、运算符以及基本的输入输出操作。本章节的课后习题旨在巩固这些概念,通过实践来提高理解力和应用能力。下面将详细讨论2.7...

    C++ Primer 笔记

    C++ Primer第四版的笔记涵盖了从基础语法到对象导向编程,再到模板和STL(Standard Template Library)等核心内容。根据描述,作者已经看到了第12章,这意味着笔记至少包含了以下主要知识点: 1. **基本语法**:...

    C++ Primer 第四版学习笔记.rar

    《C++ Primer 第四版学习笔记》是一份深入学习C++编程语言的宝贵资源,它由一位经验丰富的学习者在2014年整理而成,旨在帮助初学者更有效地掌握C++的基础和进阶概念。这份笔记以清晰、实用的方式阐述了C++ Primer第...

    C++ Primer学习笔记.doc

    第五章简要介绍了类的概念,成员函数被定义为类的一部分,有时被称为“类方法”。学习笔记中提醒了使用类时需考虑的三个关键问题:类名、定义位置以及支持的操作。对于初学者来说,理解类的目的和操作至关重要。 第...

    C++ Primer 5th笔记2001

    《C++ Primer 5th》是一本广泛认可的C++编程入门教材,其第五版针对C++11及后续标准进行了全面更新。本笔记将概述其中的一些核心知识点,旨在帮助初学者快速掌握C++的基础。 首先,让我们从最简单的C++程序开始。一...

    C++primer 4th 笔记

    C++ Primer 是一本经典的C++入门书籍,其第四版提供了全面且深入的C++语言学习指南。笔记主要涵盖了基础和一些较为复杂的知识点,旨在帮助读者理解并掌握C++的核心概念。 1. **预处理器指令**: - `#pragma once` ...

    C++Primer 类型转化

    ### C++ Primer 类型转化 #### 一、类型转换概述 在C++中,类型转换是一种常见的编程技术,用于将一种数据类型转换为另一种数据类型。这种转换可以在编译时或运行时发生,并且可以是隐式的(自动进行)或显式的...

    《C++ Primer》学习笔记(27)顺序容器

    ### 《C++ Primer》学习笔记(27)顺序容器 #### 9.1 顺序容器概述 在C++中,顺序容器是一类用于存储数据的容器,其中元素的位置依赖于其添加到容器中的顺序。这与关联容器形成了对比,关联容器中的元素位置是由其...

    C++primer_plus_第五版_学习笔记

    ### C++ Primer Plus 第五版 学习笔记关键知识点概览 #### 一、C++ 源代码风格规范 1. **每行一条语句**:为了提高代码的可读性和可维护性,建议每行只写一条语句。 2. **花括号格式**: - 每个函数的两个花括号...

Global site tag (gtag.js) - Google Analytics