标签:相加 限制 不同的 计算 表达式 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语句中表达式的类型和函数返回值的类型不匹配时。
|
标签:相加 限制 不同的 计算 表达式 int 规则 操作 语句
原文地址:https://www.cnblogs.com/cjbsai/p/14663853.html