数据类型

下图一处错误:默认带符号那儿的框框应该指向整数型那一栏
浮点型没有unsigned/signed的概念
C++ primer 第二章总结--------[ 变量和基本类型]

类型 含义 最小尺寸 尺寸
bool 布尔类型 未定义 1字节
chat 字符 8位 1字节
wchar_t 宽字符 16位
char16_t Unicode字符 16位
char32_t Unicode字符 32位
short 短整型 16位 2字节
int 整型 16位 4字节
long 长整型 32位 4字节
long long 长整型 64位 8字节
float 单精度浮点数 6位有效数字 4字节
double 双精度浮点数 10位有效数字 8字节
long double 扩展精度浮点数 10位有效数字 16字节

计算机以 “比特序列” 存储数据-------每个比特非0即1
可寻址的最小内存块成为 “字节” ----大多数机器的字节由8比特构成
存储的基本单位成为 “字” -------------大多数机器的字由32(4字节)或64(8字节)比特构成

类型决定了数据所占的比特数以及如何解释这些比特的内容
C++提供的几种字符类型,其中多数支持国际化;
基本的字符类型是char–>一个char的空间应确保可以存放机器基本字符集中任意字符对应的数字值–>一个char的大小和一个机器字节一样.

类型转换

强制转换原则:
其他–>bool: //注意一个非布尔值作为条件的时候,它的类型会自动转换为布尔值

  • 存在/满足/数值不为0------->bool=1;
  • 不存在/不满足/数值为0---->bool=0;

bool–>其他:

  • bool=1---->整数型和浮点型=1/char对应"标题开始"
  • bool=0---->整数型和浮点型=0/char对应NULL

unsigned–>signed:

signed–>unsigned://注意算术表达式中既含有符号数又含有无符号数时,符号数会自动强制转化为无符号数

  • 转化为取模后的值

浮点型–>整数型:

  • 近似处理,只保留小数点之前的部分

整数型–>浮点型:

  • 小数部分记为0

字面值常量

C++ primer 第二章总结--------[ 变量和基本类型]转义序列:
1.不可打印字符:如退格符换行符…
2.特殊含义字符:如双引号,问号…

意义 转义符 意义 转义符 意义 转义符
换行符 \t 退格符 \b 回车符 \r
横向制表符 \t 纵向制表符 \v 进纸符 \f
报警铃 \a 双引号 \" 单引号 \’
反斜线 \\ 问号 \?
报警铃 \7 换行符 \12 空格 \40
空字符 \0 字符M \115 字符M \x4d

倒数两行属于泛化的转义序列. 上面6个只是一些示例,可以自己以此类推
格式为—

  • 1.\x后紧跟1~多个十六进制数字
  • 2.\ 后紧跟1~3个八进制数字

关于制定字面值的类型,暂时不会用到,所以不写了.
没有short类型的字面值常量

变量

1.什么是变量?

变量提供一个具名的,可供程序操作的存储空间;
每个变量都有对应一个数据类型;(可以认为是创建了一个"该类型下" 的 “对象”)

2.变量的初始化和赋值?

1.初始化不是赋值
2.如何初始化和赋值都要根据该变量所属的数据类型来判断
3.关于默认初始化

  • 定义于任何函数体之外的变量被初始化为0; //有例外
  • 每个类各自决定其初始化的方式 ( 是否允许不经初始化就定义对象也由类自己决定 )
  • 绝大多数类都支持无须显示初始化而定义对象
  • 一些类要求每个对象都显示初始化
  • 定义于函数体内的内置类型的对象如果没有初始化,则其值未定义

4.赋值初始化方法:

  • int a=0;
  • int a(0);
  • int a={0};
  • int a{0};

下面两种属于列表初始化------
如果使用列表初始化且存在丢失信息的风险时,编译器将报错,也就是说会出现不合法的情况;
但是如果使用上面两种方法,编译器不会报错,但信息是丢失了.

3.声明和定义?

分离式编译 //大概知道,不写了

4.标识符? //变量命名注意事项

1.要能体现实际含义
2.由数字,字母,下划线组成
3.一般使用小写/一般用大写开头
4.数字不能在开头
5.不能命名为关键字,也最好不要命名为库标识符

5.变量作用域?

相关文章: