码迷,mamicode.com
首页 > 其他好文 > 详细

7.4类型转换

时间:2021-04-16 12:00:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:相加   限制   不同的   计算   表达式   int   规则   操作   语句   

什么是算术运算?

什么是操作数?

什么是基本类型?

会发生隐式转换的情况有哪些?

在执行算术运算时,计算机比C语言的限制更多。为了让计算机执行算术运算,通常要求操作数有相同的大小(即位的数量相同),并且要求存储的方式也相同。计算机可能可以直接将两个16位整数相加,但是不能直接将16为整数和32为整数相加,也不鞥直接将32为整数和32为浮点数相加。

C语言则允许在表达式中混合使用基本类型。在单个表达式中可以组合整数、浮点数甚至是字符。当然,在这种情况下C编译器可能需要生成一些指令将某些操作数转换成不同类型,使得硬件可以堆表达式进行计算。例如,如果对16位short型数和32位int型数进行加法操作,那么编译器将安排把16位short型值转换成32位值。如果是int型数据和float型数据进行加法操作,那么编译器将安排把int型值转换成为float格式。这个转换过程稍微复杂一些,因为int型值和float型值的存储方式不同。

因为编译器可以自动处理这些转换而无需程序员介入,所以这类转换成为隐式转换。C语言还允许程序员使用强制运算符执行显式转换。我们首先讨论隐式转换,执行隐式转换的规则有些复杂,主要是因为C语言有大量不同的算术类型。

发生下列情况时会进行隐式转换。

1、当算术表达式或逻辑表达式中操作数的类型不相同时。(C语言执行所谓的常用算术转换。)

2、当赋值运算符右侧表达式的类型和左侧变量的类型不匹配时。

3、当return语句中表达式的类型和函数返回值的类型不匹配时。

 

 

7.4类型转换

标签:相加   限制   不同的   计算   表达式   int   规则   操作   语句   

原文地址:https://www.cnblogs.com/cjbsai/p/14663853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!