Loading

隐式转换和强制类型转换


返回 我的技术栈(Technology Stack)



数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。

自动转换(隐式转换)

遵循一定的规则,由编译系统自动完成。

例如:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低

#include <stdio.h>

int main()
{
	int num = 5;
	printf("s1=%d\n", num / 2);
	printf("s2=%lf\n", num / 2.0);

	return 0;
}

输出:
s1=2
s2=2.500000

强制类型转换

把表达式的运算结果强制转换成所需的数据类型。

强制类型转换指的是使用强制类型转换运算符,将一个变量或表达式转化成所需的类型,其基本语法格式如下所示:

#include <stdio.h>

int main()
{
	float x = 0;
	int i = 0;
	x = 3.6f;

	i = x;			//x为实型, i为整型,直接赋值会有警告
	i = (int)x;		//使用强制类型转换【强制类型转换不会四舍五入】

	printf("x=%f, i=%d\n", x, i);

	return 0;
}

输出:
x=3.600000, i=3

注意:强制类型转换不会四舍五入


参考:
[1]C基础讲义2018修订版(黑马程序员)


posted @ 2021-07-18 15:51  言非  阅读(342)  评论(0编辑  收藏  举报