《C++ Primer(第5版)》学习笔记:第2章 变量和基本类型

C++是一种静态数据类型语言:它的类型检查发生在编译时。

Unicode字符集:用于表示所有自然语言中字符的标准,类型char16_t和char32_t为之服务。

浮点数运算:尽量选用double,原因是float通常精度不够而且二者的计算代价相差无几。

编程建议:尽量避免依赖于实现环境的行为,参考#ifdef的用法。

列表初始化:在C++11中,用花括号来初始化变量得到了全面的应用。其重要特点:若使用初始值存在丢失信息的风险,编译器将报错。

默认初始化:如果定义变量时没有指定初始值,则变量被默认初始化。默认值到底是什么由变量类型和变量定义的位置决定。内置类型:未被显示初始化则其值由定义位置决定,定义于任何函数体之外的变量被初始化为0,定义在函数体内部的变量不被初始化,其值是未定义的。一些类要求每个对象都显示初始化。

分离式编译:C++允许将程序分割为多个文件,每个文件可被独立编译。

变量的声明与定义:变量能且只能被定义一次,但是可以被多次声明。

标识符:长度没有限制。

嵌套的作用域:当作用域操作符的左侧为空时,向全局作用域发出请求获取作用域操作符右侧名字对应的变量。

空指针:C++11标准下,尽量使用nullptr,避免使用NULL。

const变量:默认状态下,const对象仅在文件内有效。若多个文件定义了同名const对象,等同于在每个文件中分别定义了独立的变量。解决办法是在声明和定义const变量时都添加extern关键字。

constexpr变量:C++11允许变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。一般如果程序员认为变量是一个常量表达式那就把它声明为constexpr类型。

auto类型说明:C++11引入auto类型说明符,就是让编译器替我们去分析表达式所属的类型。

decltype类型指示符:作用是选择并返回操作数的数据类型。p是int *,decltype(*p)的结果类型是int&,而非int。decltype的表达式如果是加上了括号的变量,得到的将是引用:i是int,decltype(i)得到的是int,decltype((i))得到的是int&。

类内初始值:C++11可以为class或struct数据成员提供一个类内初始值。但是不能使用圆括号完成初始化,只能用等号或者花括符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值