1.重载运算符:为已经存在的运算符赋予另外一层含义。

2.左值与右值:  
①当一个对象被用作右值的时候,用的是对象的值(内容);当一个对象被用作左值的时候,用的是对象的身份(在内存中的位置)。
②在需要用的右值的地方可以用左值替代,但是不能把右值当成左值使用。

3.在C++中一般的表达式说明符运算对象的求值顺序都没有明确规定,是随机的,因此在这些表达式中的对象来说,如果表达式指向并修改了同一个对象,会引发未定义的错误,只有四个运算符的求值顺序是规定的,规定先求左侧运算对象的值,&&  ||  ?: ,(逗号运算符)

4.(-m)/n和m/(-n)等价于-(m/n)而m%(-n)等价于m%n,(-m)%n等价于-(m%n)

5.赋值运算符的优先级低于关系运算符的优先级,所以在条件语句中,赋值部分通常应该加上括号。

6.除非必须,否则不使用递增递减运算符的后置版本。因为后置版本会有一个保留原始版本副本的过程,浪费资源。

7.sizeof并不实际计算运算对象的值。因此即使用sizeof计算解引用一个无效的指针仍是一种安全的行为。sizeof对数组执行得到整个数组所占空间大小。sizeof不会把数组转换成指针来处理。

8.在大多数用到数组的表达式中,数组自动转换为指向数组首元素的指针。但是当数组被用作decltype,取地址符(&),sizeof以及typeid时候,这种转换不会发生

9.命名的强制类型转换:格式 cast-name<type>(expression);
cast-name分别为:
①static_cast:任何明确定义的类型转换,只要不包含底层的const,都可以用它。
例子:double slope = static_cast<double>(j) /i;
②const_cast:只能改变运算对象的底层const,不能改变其类型
const char *cp;
char *q = static_cast<char*>(cp); //错误,static_cast不能去掉底层的const
static_cast<string>(cp);//正确,字符串字面值转换成string类型
const_cast<string>(cp);//错误,const_cast只改变常量属性


Chapter4(表达式) --C++Prime笔记的更多相关文章

  1. 003-scanf函数使用和表达式-C语言笔记

    003-scanf函数使用和表达式-C语言笔记 学习目标 1.[掌握]输入函数scanf的基本使用方法 2.[掌握]输入函数scanf运行原理和缓冲区理解 3.[掌握]算术运算符和算术表达式的使用 4 ...

  2. Chapter6(函数) --C++Prime笔记

    1.重载函数,也就是说一个名字可以对应几个不同的函数. 2.内置类型的未初始化局部变量将产生未定义的值. 3.局部静态对象在程序执行路径第一次进过对象定义语句时初始化,并且直到程序终止才被销毁. 内置 ...

  3. Chapter2(变量和基础类型)--C++Prime笔记

    数据类型选择的准则: ①当明确知晓数值不可能为负时,选用无符号类型. ②使用int执行整数运算.在实际应用中,short常常显得太小而long一般和int有一样的尺寸.如果运算范围超过int的表示范围 ...

  4. 有关EL表达式的一些笔记

    JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库. <%--引入EL函数库 --%> <%@taglib uri="http://j ...

  5. 【Java】Java8新增的Lambda表达式_学习笔记

    一.Lambda表达式可以简化创建匿名内部类对象 1.不需要new XXX(){}这种繁琐代码. 2.不需要指出重写的方法名. 3.不要给出重写的方法的返回值类型. 4.Lambda相当于一个匿名方法 ...

  6. 表达式 - PHP手册笔记

    PHP是一种面向表达式的语言.表达式的定义可以描述为,任何有值的东西. PHP支持全等运算符===(值和类型均相同)和非全等运算符!==(值或者类型不同). PHP的三元条件运算符貌似和C语言不太一样 ...

  7. Spring AspectJ的Execution表达式-备忘笔记

    Aspectj切入点语法定义 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式  execu ...

  8. C# 表达式树学习笔记

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. Chapter10(泛型算法)--C++Prime笔记

    关键:算法通过在迭代器上进行操作来实现类型无关.算法不改变所操作序列的大小. 1.算法大多都定义在algorithm头文件中,标准库还在头文件numeric中定义了一组数值泛型算法. 2.泛型算法永远 ...

随机推荐

  1. [shell] 脚本之shift和getopts (转载)

    转载地址:http://www.361way.com/shell-shift-getopts/4973.html 建议不熟悉getopts的朋友,此篇要看完,getopts部分内容在原作者上面有改动. ...

  2. Mongodb For Mac OSX && 登录验证

    题外话:尽管有不少人贴出了 <我不用mongodb的十大理由> 等系列文章,但是 NoSQL 的发展不会因此而止步, mongodb 是 NoSQL 的典型代表,楼主还是抱乐观态度的,有人 ...

  3. bootstrap table的展开行问题

    照着网上与api里说的添加detailView属性设置为true,detailFormatter属性为展开后的内容,但是设置之后发现,在表格每一行最前面是多出一列正常该显示"+"的 ...

  4. 未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件

    发布的打包项目在本机测试好使,部署到客户服务器上报错 分析器错误消息: 未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Cu ...

  5. java9初探

    最近研究了一下java9的新特性,也看完了<Modularity Programming in Java 9>,有一些收获写博客记录一下. 1.java9初探

  6. jquery 取消全选和全选功能 不全选

    代码如下 function ckSelectAll() { if ($('#ckSelectAll').is(':checked') == true) { $("INPUT[name='ch ...

  7. js中常见算法

    一.面试80%都要问的数组去重 数组去重的方式有多种,其实面试中主要是想靠对对象的理解.还记得我第一次去面试的时候,去重的时候用了2个for循环. //1循环一次 var arr1 = [1,2,3, ...

  8. 【vue】import的使用

    以下是vue默认模板结构,自动加载HelloWorld (1)@ 等价于 /src 这个目录,避免写麻烦又易错的相对路径,是在webpack.base.config.js里面配置好别名 (2)impo ...

  9. get mobile http request in PC & fiddler4

    get mobile http request in PC 如何在 pc 上抓取 手机的 http 请求 Fiddler 提琴手 https://www.telerik.com/download/fi ...

  10. js & Object reference bug

    js & Object reference bug bug object ref bug onClickButton (type = ``) { let { publishDate: publ ...