类型详述
类型可以划分为基本类型与复杂类型
-
基本(内建)类型:C++ 语言中所支持的类型
-
数值类型
-
字符类型(char, wchar_t, char16_t, char32_t)
-
整数类型
- 带符号整数类型:short, int, long, long long
- 无符号整数类型:unsigned + 带符号整数类型
-
浮点类型
- float, double, long double
-
-
void
-
-
复杂类型:由基本类型组合、变种所产生的类型,可能是标准库引入,或自定义类型
-
与类型相关的标准未定义部分
-
char 是否有符号
-
整数中内存中的保存方式:大端 小端
-
每种类型的大小 (间接影响取值范围)
- C++11 中引入了固定尺寸的整数类型,如 int32_t
-
int main()
{
char ch1;
unsigned char ch2;
signed char ch3;
}
- 字面值:在程序中直接表示为一个具体数值或字符串的值
- 每个字面值都有其类型
- 可以为字面值引入前缀或后缀以改变其类型
- 可以引入自定义后缀来修改字面值类型
int operator "" _ddd(long double x)
{
return (int)x * 2;
}
int main()
{
int x = 3.14_ddd;
std::cout << x << '\n';
}
-
变量:对应了一段存储空间,可以改变其中内容
-
变量的类型在其首次声明(定义)时指定:
- int x:定义一个变量 x,其类型为 int
- 变量声明与定义的区别:extern 前缀
-
变量的初始化与赋值
-
初始化:在构造变量之初为其赋予的初始值
- 缺省初始化
- 直接/拷贝初始化
- 其它初始化
-
赋值:修改变量所保存的数值
-
-
为变量赋值时可能涉及到类型转换
- bool 与 整数之间的转换
- 浮点数与整数之间的类型转换
-
隐式类型转换不只发生在赋值时
-
if 判断
-
数值比较
-
无符号数据与带符号数据之间的比较
-
std::cmp_XXX (c++20)
-
-