C++ Primer笔记(一)

来源:互联网 发布:淘宝店铺过户流程 编辑:程序博客网 时间:2024/06/14 00:17

变量和基本类型

1、在算数表达式中不要使用char或bool,只有在存放字符或布尔值时才使用它们,因为类型char在一些机器上是有符号的,而在一些机器上是无符号的,所以如果要使用char进行运算特别容易出错。如果你需要使用一个不大的整数,那么明确指出它的类型是signed char或者unsigned char。
2、执行浮点数运算选用double,这是因为float通常精度不够而且双精度浮点数和单精度浮点数的计算代价相差不大。事实上,对于某些机器来说,双精度运算甚至比单精度还快。
3、当我们赋给无符号类型一个超出它表示范围的值时,值会溢出。
4、当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义。
5、如果表达式里既有带符号类型又有无符号类型,当带符号类型取值为负时会出现异常结果,这是因为带符号数会自动地转化为无符号数。
6、列表初始化且初始值存在信息丢失的风险时,编译器报错

long double ld = 3.1415926536;int a{ld};      //错误,因为存在丢失信息的风险int b = ld;     //正确,转换执行,且确实丢失了部分值

7、指向指针的引用:引用本身不是一个对象,因此不能定义指向引用的指针,但指针是对象,所以存在对指针的引用;

int i = 42;int *p;int *&r = p;r = &i;*r = 0;

8、要理解r的类型是什么,最简单的方法就是从右往左阅读r的定义,离变量名最近的符号(此例中是&r的符号&)对变量的类型又最直接的影响。声明符的其余部分用以确定r的引用类型是什么。
9、指针是对象而引用不是
10、C++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式,声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化。在constexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指的对象无关。
11、别名声明using

using SI = Sale_Item;
0 0
原创粉丝点击