C 语言中 , 类型转换 是常用操作 , 借助该机制 , 将不同数据 的 数据类型 进行转换 ;
C 语言类型转换种类 : 主要是 静态类型转换 ( 隐式类型转换 ) 和 动态类型转换 ( 显式类型转换 ) ;
int a = 1;
float b = 2.5;
// 1. 静态类型转换 示例
// 计算时 a 变量会被转为 float 类型 , 与 b 进行加法计算
float c = a + b;
// 输出 : 3.500000
printf("c = %f\n", c);
int a = 1;
float b = 2.5;
// 2. 动态类型转换 示例
// float 类型 的 b 变量 被显式地转换为 int 类型
int d = (int) b;
// 输出 : 2
printf("d = %d\n", d);
代码示例 :
#include <stdio.h>
int main() {
int a = 1;
float b = 2.5;
// 1. 静态类型转换 示例
// 计算时 a 变量会被转为 float 类型 , 与 b 进行加法计算
float c = a + b;
// 输出 : 3.500000
printf("c = %f\n", c);
// 2. 动态类型转换 示例
// float 类型 的 b 变量 被显式地转换为 int 类型
int d = (int) b;
// 输出 : 2
printf("d = %d\n", d);
return 0;
}
执行结果 :
c = 3.500000
d = 2
C++ 中提供了 四种 类型转换操作符 :
// 静态类型转换 整型 -> 浮点型
int num = 10;
float fnum = static_cast<float>(num);
// 重新解释类型 char* 指针类型 -> int* 指针类型
char* hello = "Hello";
//获取 hello 字符串地址 , 将其转为 int 类型
int hello_address = reinterpret_cast<int> (&hello);
C 语言常量 和 C++ 常量原理 参考 【C++】C 语言 和 C++ 语言中 const 关键字分析 ( const 关键字左数右指原则 | C 语言中常量的原理和缺陷 | C++ 语言中常量原理 - 符号表存储常量 ) 博客 ;
C++ 中的 静态类型转换 static_cast 和 重新解释类型 reinterpret_cast 对应 C 语言中的 强制类型转换 ,
C++ 中的 动态类型转换 dynamic_cast 和 常量转换 const_cast 是 C++ 独有的 , 因为 C 语言中没有 子类父类 继承概念 , C++ 中的常量的本质 与 C 语言也是不同的 ;