目录
一.强制类型转换
二.语法格式
三.练习
四.视频教程
一.强制类型转换
强制类型转换可以实现类型之间的互相转换。
二.语法格式
(要强制转换的类型)(变量/表达式)
易错点:
(int)x+y和(int)(x+y)不一样
举例:
(int)a
(float)(x+y)
需要注意的是,从占用内存大的类型向占用内存小的类型强制类型转换可能会丢失精度,例:
#include <stdio.h>int main(void)
{double b=3.5;printf("b is %d\n",(int)b);return 0;}
运行结果为3
从占内存小的类型向占内存大的类型转换精度不会丢失,如转换方向为char->int->long->double
并且会自动进行转换。如:
#include <stdio.h>int main(void)
{int a;char b = 126;a = b;printf("b is %d\n",b);return 0;}
运行结果为126
三.练习
当int a=2,int b=3,double x=3.5,double y=2.5,则表达式(double)(a+b)/2 + (int)x%(int)y的值是多少?这个值的类型是什么?
解析:
(double)(a+b)/2 + (int)x%(int)y
=(double)(2+3)/2 + (int)3.5%(int)2.5
=2.5+3%2
=3.5
类型是double类型。
四.视频教程
58.强制类型转换_哔哩哔哩_bilibili