目录
1,楔子
强制类型转换是把变量从一种类型转为另一种数据类型。语法格式为 :(type_name)expression。
2,源码举例:
2.1 浮点类型强制转换成整型
#include<stdio.h>
int main(void)
{
float a = 3.14;
printf("%d\n", a);
printf("%f\n", a);
printf("%d\n", (int)a);
return 0;
}
/*
运行结果:
1610612736 乱码,因为a定义的为float类型,我们输出格式是%d。
3.140000 我们定义的是float类型,输出格式也是%f,匹配输出。
3 因为我们强制转换成了int类型,我们%d格式输出,类型匹配
*/
2.2 无符号整型强制转换成指针类型
#include<stdio.h>
int main(void)
{
unsigned int b = 0x11;
printf("%d\n", b);
printf("%#x\n", b);
printf("%p\n", (unsigned int *) b);
return 0;
}
/*
运行结果:
17 //定义的是无符号整型十六进制数,打印输出的是十进制,0x11的十进制就是17
11 //%x是十六进制输出
0x11 //%#x与%x的差异,仔细对比下
0000000000000011 //我们把0x11强制转换成了无符号指针类型,因为我的电脑是64位的,所以它的输出结果是16个数。每个数是有4个位。16*4=64。
*/