第三章
1.C++的内置数据类型都有哪些呀?
C++的内置数据类型分为基本类型和复合类型,内置数据类型可以分为整型和浮点类型,
2.变量的命名规则
以字母 、下划线开头有字母 、下划线 、数字组成
3.C++的整数
存储大小由小到大排列:char<short<int<long<long long
(均为有符号类型)
4.sizeof运算符的作用与用法,climits头文件中有啥?
sizeof用来返回某个类型或者变量在内存中中占的字节数
sizeof(int) 用于类型名需要使用括号
sezeof(a) 或者 sizeof a 用于具体变量括号是可选的
climits头文件中包含了定义了符号常量来代表类型限制
#define CHAR_MAX 127
5.#define 和const创建符号常量的适用场景?
6.C++变量初始化方式
1.延续C的传统初始化风格
2.括号初始化
3.列表初始化
int a(5); //括号初始化
int a = {5}; // 等号可以省略 int a{5}, 如果花括号中为空,则初始化为0
7.C++整数的无符号类型
//unsigned is unsigned int
unsigned char
unsigned short
unsigned int
unsigned
unsigned long
unsigned long long
8.整型字面值
1.十进制 、八进制 、二进制
int a = 10;
int a = 0x10;
int a = 02;
2.不管什么格式,cout都将以十进制的方式进行输出,为了输出十六进制或者八进制,可以修改cout的行为模式。
cout<<dec;//以十进制格式输出
cout<<hex;//以十六进制格式输出
cout<<oct; //以八进制格式输出
9.C++如何确定整型常量(字面量)的类型
1.如果有特殊后缀:
L代表长,u代表无符号
2.如果值过大,int无法存储将存为合适的类型
3.其他情况都存为int类型。
10.unicode和utf-8什么意思?
11.bool类型
1.true 可以被提升为1, false可以被提升为0
2.任何非0 的值都可以被隐式转换为true, 0值会被转化成false
12.如何创建一个const常量,需要注意什么?const和#define比起来好在哪里?
1.const type typename = value;应该在声明定义的时候就进行初始化,否则后续的由于const不可变动,就无法被赋值。
2.const和#define 相比,其可以明确的指定变量的类型,可以利用作用域规则对变量进行限定,可以适用于更复杂的变量类型。
3.const的其他用法
const数组:const指针,指针const
13.浮点数的字面量表示
浮点数默认属于double类型,可以增加后缀f代表为float,增加L代表long double类型。
1e+2 100
1e-2 0.01
1e2 100
14.浮点数类型
1.float 、double 、long double
具体的大小可以从cfloat.h或者float.h文件中获取
15.C++的类型转换
1.自动执行的类型转换
- 将一种算数类型的值赋给另一种算术类型的值
值会被转换为接受变量的类型。
如果使用花括号初始化,则不允许缩窄: - 表达式包含不同的类型
- 自动转换:整型提升,在计算开始时,小于int的都会被提升为int类型。
- 当两个不同的类型的数据运算时,较小的会被转换为较大的类型。
- 将参数传递给函数时,C++将对值进行转换
对char和short类型应用整型提升,对float提升为double。
4.强制类型转换
typename (value)
(typename) value
强制类型转换并不会修改原始的value,而是会返回一个转换后的数值备份。
16.C++的auto声明
在C++中auto用来进行自动类型推断
在C中则是显示的定义变量的生存期为自动存储