📅  最后修改于: 2023-12-03 15:14:05.081000             🧑  作者: Mango
在C语言中,有时需要将一种数据类型转换为另一种数据类型。这个过程称为类型转换。
C中的类型转换包括两种,一种是隐式类型转换,另一种是显式类型转换。隐式类型转换是由编译器自动完成的,而显式类型转换需要程序员显示地告诉编译器进行类型转换操作。
在C语言中存在四种隐式类型转换:
short s = 10;
int i = s; // 隐式转换为int类型
int i = 10;
float f = 1.23;
printf("%f", i + f); // 整型变量i会隐式转换成浮点型
int i = 50000; // i的值会截断为-15536
short s = i;
short s = 100;
int i = 200;
printf("%d", s + i); // s会被隐式转换为int类型
相对于隐式类型转换,显式类型转换意味着程序员需要手动指定转换的数据类型。
C语言中存在三种显式类型转换:
int i = 10;
float f = (float)i; // 显式转换为float类型
int i = 10;
const int *p = &i; // 将int类型转换为const int类型
struct {
unsigned char widthValidated;
unsigned char heightValidated;
} status;
unsigned int data = 0x10;
status.widthValidated = data & 0x01;