1、将整数常量转换为浮点数:
int a = (float)5; // 实际上这里会有警告或错误,因为不能直接将int赋值给int变量通过float转换
float b = (float)5; // 正确,将整数5转换为浮点数5.0
2、将字符常量转换为整数
int c = (int)'A'; // 将字符'A'转换为对应的ASCII码值65(整数)
3、将浮点数常量转换为整数(注意:这会导致小数部分被截断)
int d = (int)3.14; // 将浮点数3.14转换为整数3
4、将指针常量(如NULL)转换为其他指针类型
void *e = (void *)0; // 将整数0转换为void*类型的空指针(与NULL等价)
int *f = (int *)NULL; // 将NULL转换为int*类型的空指针(实际上直接写int *f = NULL;也可以)
5、将整数常量转换为函数指针类型(这是不安全的,通常用于演示或特定情况下的底层编程)
void (*g)() = (void (*)())0; // 创建一个空的函数指针(值为0或NULL)
void (*g)() = ...;
声明了一个名为g
的变量,其类型为void (*)()
(即指向不接受参数且返回void
的函数的指针),并将其初始化为上述转换后的结果,即一个空函数指针。(
(void (*)())0 的实际含义就是:将常数0转型为“指向返回值为void的函数的指针”。