C语言中的数据类型转换

注:本文为博主在学习期间整理的随笔,意在整理课堂学习知识,加深理解。文中如有错误之处,欢迎指正。(博主目前在华清远见西安分校学习)

前言:在C语言中,整型数据、浮点型数据和字符型数据可以进行混合运算。字符型数据可以得与整型通用。计算中分为强制类型转换和隐式类型转换,下面逐一进行介绍。

一、强制类型转换:

顾名思义,强制类型转换是人为进行的类型转换,如下:

不难发现,我们在进行计算时,强制将char类型转化为了int类型,也是可以正常进行计算的。但是无论是自动类型转换还是强制类型转换,都只是为了本次运算而进行的临时性转换,转换的结果也会保存到临时的内存空间,不会改变数据本来的类型或者值。

 二、隐式类型转换:

隐式类型转换是存在于内部的,不能认为进行操作,主要有以下几种情况:

1. 自动转换:

如图,在我们进行计算的时候,gcc之后会提示出现了两个“double”,这就意味着计算过程中float自动转换为double,通过这个警告可以看出发生了自动类型转换。

2.运算里面的转换:运算里的类型转换是比较常见的,这个时候需要注意输出的是否有提示警告,如图进行一个简单的运算:

 对int型和double型同时计算时,提示出现了两个“ double”,这就意味着int转换为double进行运算,根据提示,将%d换成%f(浮点型)进行输出;

可以看到,最终的运算结果是无误的,说明在运算中int类型的确是转换为了double类型。

3.有符号和无符号之间的转换:

在计算时,unsigned int类型转换成了signed int类型(signed可以省略),值得一提的是,(-10+5)是等于(-5)的,想想这是为什么呢?

那么,类型转换的规则是什么呢?

在进行运算时,不同类型的数据要转换成同一类型。自动转换的规则如下:

总之:类型转换的规律是纵向由低级向高级型转换,横向由float向double转换。

写在文末:以上内容为本人原创,如有错误或不当之处,欢迎私信指正。

猜你喜欢

转载自blog.csdn.net/bx1091182836/article/details/126660445