《C++ Primer》基本内置类型与变量

基本内置类型与变量


(数据类型)
1. 当明确知晓数值不可能为负时,选用无符号类型。
2. 使用int执行整数运算,如果计算超过了int的范围,使用long long。
3. 算术表达式中不要使用char或者bool。
4. 执行浮点数运算用double。


(类型转换)
1. 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。
2. 当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的。程序可能继续工作、崩溃或生成垃圾数据。
3. 避免无法预知和依赖于实现环境的行为。
4. 当在程序的某处使用了一种算数类型的值儿其实所需的事另一种类型的值时,编译器会自动进行类型转换。
5. 当一个算术表达式既有无符号数又有int值时,那个int值就会转换成无符号数。
6. 从无符号数中减去一个值时,不管这个值是不是无符号数,必须确保结果不能是一个负值。
7. 切勿混用带符号类型和无符号类型。


(字面值常量)
1. 0开头的整数代表八进制数,以0x或0X开头的代表十六进制数。
2. 默认情况下,十进制字面值是带符号数,是int、long和long long中最小的一个。前提是能容纳得了。
3. 默认浮点型字面值是double。
4. true和false是布尔类型字面值。
5. nullptr是指针字面值。


(变量)
1. 对象是指一块能存储数据并具有某种类型的内存空间,是能够被程序修改的数据,而值是指只读的数据。
2. C++语言中,初始化和赋值是两个完全不同的操作。初始化的含意是创建变量是赋予其一个初始值,而赋值的含意是把对象的当前值擦除,而以一个新值代替。
3. 如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错。
4. 定义于函数体内部的内置类型变量的对象如果没有初始化,则其值未定义。累的对象如果没有显式地初始化,则其值由类确定。
5. 使用未初始化变量的值是一种错误的编程行为并且很难调试,很可能带来无法预计的后果。所以应该初始化每一个内置类型的变量。
6. 声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。而定义负责创建与名字关联的实体。
7. 如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显式地初始化变量,如果包含初始值就不再是声明,而变成定义了。
8. 在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误。
9. 变量能且只能被定义一次,但是可以被多次声明。
10. 如果要在多个文件中使用同一个变量,就不许将声明和定义分离。此时,变量的定义必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,却绝对不能重复定义。


(标识符和名字的作用域)
1. 标识符要能体现实际含义
2. 变量名一般用小写字母
3. 用户自定义的类名一般以大写字母开头
4. 如果标识符由多个单词组成,则单词间应有明显区分
5. 在对象第一次被使用的地方附近定义它是一种好的选择,因为这样做有助于更容易找到变量的定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值