本章将介绍C++的基础数据类型,主要涉及下列方面:
- 变量的声明、初始化、赋值
- 整数字面量
- 浮点数如何计算
- 变量类型转换
- 字符相关
- auto关键字
Variables, Data, and Data Types
这里先给出变量的定义:有名字的一块内存,这个变量的类型决定了程序如何解释这块内存,如何使用这块内存。并且类型由一系列关键字组成
基础变量分整型和浮点型两大类
Defining Integer Variables
要说明几点:
- 第九行只是声明,初始化由编译期完成,此处进行默认初始化(声明 ≠ 初始化)
- 初始化有三种形式,{},(),=,大多数情况下都没有区别
- {}会检查数据存不存在精度丢失的情况,如果存在narrowing conversion则报错
Signed Integer Types 有符号整型
这是书上给出的经典值(常见值),而标准只要求了最小大小(表里包含无符号整型):
表里每一小栏靠前的名字是更常用的,即short比short int常见
我们可以使用sizeof关键字查看类型所占字节数
Unsigned Integer Types 无符号整型
和对应的有符号类型占用相同的内存
书上提到char应当用来存储字符类型,用signed/unsigned char来存储数字,std::byte来存储二进制数据
char和signed char不是一种类型!这是整型里的例外!它的有符号性依赖于平台实现!
Fundamental types - cppreference.com
我们可以用limits里面的一个模板类来查看自己机器的char是不是有符号类型(取决于机器对数字的编码)
Zero Initialization
{}和{0}的初始化效果一样,都是使数值类型初始化为0,{}对所有基本数值类型都适用
Defining Variables with Fixed Values 定义常量
加个const即可
Integer Literals 整数字面量
Integer literal - cppreference.com
书上整理的没有cppref系统,这个不常见,用的时候查就可以了
需要知道常见的:u代表无符号