0%

C++ #标准转换运算符 static_cast 用法

static_cast是一个c++标准类型转换运算符.

除了可以用于下面几种基本类型的转换:

  • 整型和浮点型
  • 字符和整型
  • 空指针和任何目标类型的指针

还可以用于基类和派生类之间的转换,但是没有运行时检查,也就是说可以从子类转换成父类,不建议从父类转换成子类

不可以用于风险较高的转换:

  • 不同类型的指针之间互相转换
  • 整型和指针之间的互相转换
  • 不同类型的引用之间的转换

如下代码表示从子类mode转换成父类uint32_t

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>

enum class mode : uint32_t {

mode_0 = 0,
mode_1,
mode_2,
mode_3 = 0x1000,
mode_4,
};

using namespace std;

int main() {

mode temp_mode = mode::mode_4;
cout << "hello world " << std::hex << static_cast<uint32_t>(temp_mode);
return 0;
}

这是MarkDown语法示例

这是H2

这是H6

引用别的文字

这里面的全部是引用别人的文件:
君不见黄河之水天上来,奔流到海不复回,
君不见高堂明镜悲白发,朝赵如青丝暮如雪.

显示列表
无序列表

  • AAAAA
  • BBBBB
  • CCCCC

或者使用:

  • Red
  • Green
  • Blue

有序列表

zhangsan
lisi
wangwu
超链接
表示的方式为 Baidu

代码块,第一个 ``` 前面需要一个空行
方式为:

1
2
3
4
5
6
7
8
9
// Q:求两个非负整数的最大公约数
int gcd(int a,int b){
// 使用欧几里德算法,又叫辗转相除法
if (b == 0) {
return a;
}
int r = a % b;
return gcd(b, r);
}

分割线


斜体 加粗
斜体文字
粗体文字

上标和下标

上标 111,位于标签之间表示上标.

下标 位于标签之间