《C++primer》第二章--变量和基本内置类型

基本内置类型
  • 如何选择类型的几点建议
    • 当明确知晓数值不能为负数时,选用无符号类型
    • 使用int进行整数运算。因为short一般表示的范围比较小,而long一般和int有相同的范围。如果表示的范围超过了int就使用long long
    • 算术运算时尽量不要使用char和bool,只有在存放字符型数据和布尔值的时候使用。因为char的符号在有的机器上面是有符号,在另外的一些机器上面确实无符号的,很容易出错。
    • 执行浮点数运算时使用double。因为float的精度不够而且float和double的计算代价相差无几,甚至有些机器上面double的运算速度比float的速度快。
  • 类型转换
    • 当我们赋值给无符号类型一个超过了它表示的范围时,结果是初始值对无符号类型表示范围最大值取余后的结果。例如8bit大小的unsigned char,把-1给它,结果是-1%256,所得结果是255.
    • 把一个负数转化成一个无符号类型的时候,类似于直接给一个无符号数赋值为一个负数,结果等于这个负数加上无符号数的模(例如上例)。
    • 切勿混用有符号和无符号类型的数据进行运算。
  • 字面值常量
    • 转义序列
含义字符含义字符
换行符\n回车符\r
纵向制表符\v纵向制表符\t
反斜线\退格符\b
问号\?进纸符\f
报警(响铃符)\a双引号\”
单引号\’退格符\b

还有一种泛化的转义序列

含义符号
响铃\7
空字符\0
换行\12
字符M\115
空格\40
字符M\x4d

注意:如果反斜线后面跟着的八进制数字超过3个,只有前3个数字与\构成转义序列


变量
  • 变量定义和声明
    • 建议初始化每个内置类型的变量。这样防止不初始化后直接使用带来的危害。
    • 声明和定义的区别:声明规定了变量的类型和名字,而定义在此基础之上还申请空间,也可能为变量赋初值。
    • 我们可以使用extern int i;的形式,使用在其他文件中定义的变量
    • 变量只能被定义一次可以被声明很多次,变量的定义必须出现在一个文件中,而其他用到该变量的文件必须对其进行声明,但是不能重复的定义
  • 标识符的几点建议
    • C++中标识符由字母,数字和下划线组成,且必须以字母或者下划线开头
    • 标识符能体现实际含义
    • 变量名一般用 小写字母
    • 用户自定义的类名以大写字母开头
    • 如果标识符由多单词组成,则单词中间应该有明显的标识

复合类型
  • C++中有几种复合类型,其中最主要的是指针和引用
  • 引用
    • 引用不是对象,它是给已经存在的对象所起的一个别名
    • 因为引用不是一个对象,所以不能定义引用的引用
    • 引用只能绑定在某个对象身上,即是引用在定义时必须赋初值,而且中间不能改变引用的指向,不能和字面值或者表达式结果绑定在一起
  • 指针
    • 指针和引用区别:指针是一个对象,允许对指针进行赋值或者拷贝,而且在指针的生命周期内,允许它先后指向几个不同的对象;指针无需在定义时赋初值。
    • 因为引用不是对象,没有实际地址,所以不能定义指向引用的 指针
    • 解引用操作是针对指针而言的,解引用操作适用于那些确定了指向了某个对象的有效指针。
    • 建议初始化所有指针
    • 面对比较复杂的指针或者引用的声明的时候,从右往左阅读有助于理解他的真实含义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值