第二章_变量和基本类型_PrimerC++


1. 基本内置类型

这一部分内容要注意的东西其实不是特别多

1)算术类型

算术类型可以分为两类:整型(字符和布尔类型也算在内)和浮点型

算术类型的尺寸

值得注意一下

  • 字符型
    字符:char(8位)
    宽字符:wchar_t (16位)
    Unicode字符:char16_t(16位)、char32_t(32位)

  • 浮点型
    单精度float:6位有效数字
    双精度double:10位有效数字
    拓展双精度long double:10位有效数字
    在这里插入图片描述

    这里的有效数字是指按照IEEE标准的浮点数中按十进制可以保证的有效数字

    详细可以参考

    • https://blog.csdn.net/sinat_38972110/article/details/82117072?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

    注意有效数字是指浮点数中尾数可以保证的精度

带符号类型与无符号类型

  • 字符型被分为了三种:char/unsigned char/signed char
  • 一般编译器决定char为带符号还是不带符号
  • int也类似,事实上这里牵扯到一个信息安全相关的知识,不带符号的更容易导致错误,但带符号的更符合现实逻辑。

建议:如何选择类型

  • 知晓不可能为负,选用无符号类型
  • 使用int执行整型运算,不够用则用longlong
  • 算术表达式中尽可能不要用到charbool
  • 执行浮点数运算选用double:计算时间相差不多(甚至更快)
2)类型转换

类型所能表示的值的范围决定了转换的过程:

  • 浮点数与整型之间的相互转换

    浮点数转为整型可能存在近似处理

    整型转为浮点数可能存在精度损失

  • 无符号数与有符号数之间的相互转换

    实际上二进制表示不发生改变,这样的转换有时可能导致不好的后果

    无符号数与有符号数混用将统一为无符号数

    无符号数的不谨慎使用可能产生不良后果,如下:

    for (unsigned int i = k; i--; i >= 0){	//for循环将无法终止
        do_something();
    }
    
3)字面值常量

整型和浮点型字面值

  • 整型:088八进制,88十进制,0x88十六进制
  • 浮点型:3.1415e0科学计数法,0..001

字符和字符串常量

转义字符

  • 转义字符中,如果\后跟着数字则表示八进制,如\123,表示八进制数123,最多为三位

指定字面值类型

在这里插入图片描述
以上为primer C++书中出现的指定字符和字符串字面值的前缀和后缀符号


2. 变量

1)变量定义

语法

  • 类型说明符 标识符;

初始值

  • 定义了后对象可以马上使用
    在这里插入图片描述

  • 初始化不等于赋值

    初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象当前的值擦除,以一个新的值来代替

  • 列表初始化

    利用花括号进行初始化,不仅适用于基本内置类型也适用于自定义对象。

    int units_sold = {0};

    • 利用列表初始化内置变量时,若初始值丢失,则可能存在风险。(即花括号中包含变量的情况)

    在这里插入图片描述

默认初始化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值