C++的基本变量类型🦝
C++的基本变量类型🦝
有关类型转换
-
当我们把浮点数赋值给整数类型时,进行近似处理
-
赋值给无符号类型一个超出其范围的数时,结果是初始值对无符号类型表示最大数取模后的结果
-
当一个算式中既有无符号数又有int时,int会转换成无符号,如:
unsigned u=10;
int i=-42;
std::cout<<u + i<<endl;
输出结果是429496…….
- 无符号数的运算结果不会小于0,这意味着写循环时可能陷入死循环:
for(unsigned u=9;u>=0;u--){
cout<<u<<endl;
}
提示:不要混用带符号类型和无符号类型
基本类型🐳
1. 算数类型
| 类型 | 含义 | 最小尺寸 |
|---|---|---|
| bool | ||
| wchar_t | ||
| char16_t | Unicode字符集 | |
| char32_t | Unicode字符集 | |
2. 字面值
指定字面值的类型
| 字符和字符串 | |
|---|---|
| u | Unicode 16 |
| U | Unicode 32 |
| L | 宽字符 |
| u8 | utf-8 |
3. 复合类型
引用
左值引用:引用即别名
int val=10;
int &reval=val;//引用必须初始化,且必须是某个对象,不能是字面值或者表达式的运算结果
引用的类型必须与引用对象的类型一致,但存在两个例外:
初始化常量引用时允许任意表达式作为初始值,只要表达式的结果能转换成引用的类型
字符串🕸️
定义和初始化string
| string s1 | 默认初始化,是一个空字符串 | 有等号的是拷贝初始化 |
|---|---|---|
| string s2(s1) | s2是s1的副本 | 不使用等号的是直接初始化 |
| string s2=s1 | 等价于第二个 | |
| string s3(”value”) | s3是字面值”value”的副本 | |
| string s3=”value” | ||
| string s4(n,’c’) | s4初始化成n个c组成的副本 | |
string对象的操作
| 语法 | 操作 | 备注 |
|---|---|---|
| is>>s | 输入 | |
| s.empty() | 判断是否为空 | |
| os << s | 输出 | |
| s.size() | 获取大小 | 返回值是string::size_type类型 |
| s1+s2 | 合并字符串 | |
| s1=s2 | 复制字符串 | |
| s1 != s2 | 判断是否相等 | |
| <,≤,>,>= | 比较 | |
| getline(is,s) | 输入 |