图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
当一个表达式中具有不同数据类型数据对象参与运算时,称为混合运算。C语言规定:不同数据类型的对象进行运算时,必须先进行数据类型转换,转换为相同类型的数据,然后再进行运算。数据类型的转换分为自动类型转换和强制类型转换。
1.数据类型的自动转换
自动转换也称为隐式转换,是编译系统自动进行的,不需要用户干预。自动转换时以不丢失数据、保证数据精度为原则。具体转换规则如图2.3所示。在图2.3中,指向左侧的箭头表示必须进行的转换,也就是说参加运算的数据是char或short型时,必须转换成int型;参加运算的数据是float型时,必须转换成double型。纵向箭头表示当运算对象为不同数据类型时的转换方向,由低级别的类型向高级别的类型转换。
图2.3 系统自动数据类型转换规则
例如,计算表达式128-'m'+84.7的过程如下:
①计算128-'m':计算时先将字符'm'转换为整数109,再计算128-109,计算结果为19。
②计算19+84.7:由于表达式中有实型数据,因而要先将19和84.7都转换为double型,再进行运算,结果为103.7。
2.数据类型的强制转换
强制类型转换又称为显式转换,其通过类型转换运算来实现数据类型的转换。一般形式为:
(类型说明符)(表达式)
其功能是:在本次运算中,强制将表达式的值转换成类型说明符所指定的数据类型,再参加运算。例如:(www.chuimin.cn)
(int)2.3 //把实型数据2.3强行转换为整型,结果为2
(int)(x+2)//把x+2的结果转换为整型
使用强制转换时应注意以下问题:
①类型说明符和表达式都必须加括号,若表达式是单个变量可以不加括号。
②无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量进行的临时转换,并没有改变数据说明时对该变量定义的类型,变量或表达式的值并未发生改变。
【例2.16】 强制类型转换示例。
程序运行结果为:zf=4,f=4.56
有关C语言程序设计基础(第3版)的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
在C语言中,数据类型可分为4类,它们是基本数据类型、构造数据类型、指针类型、空类型,如图2.2所示。图2.2C语言的数据类型不同数据类型的存储空间大小和取值范围都不同,与使用的编译器版本也有一定的关系,见表2.2。表2.2C语言的标准数据类型1.整型数据整型数据分为两大类:有符号型和无符号型。在C程序中,用于存放整型数据的变量称为整型变量。C语言中,有十进制小数形式和指数形式两种表示实型常量的方法。......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
例如,有如下所示的C语句序列:则结构体指针变量p1指向结构体数组元素a[2],其关系如图10.2所示。此时应该注意到被指针变量p1指向的结构体数组元素本身是不能作为整体操作的,所以*p1也不能作为整体操作。......
2023-11-20
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
C语言的最大特点是:功能强、使用方便灵活。由于这个“灵活”给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。在C语言中大写字母和小写字母是两个不同的字符。C语言规定以’\0’作字符串结束标志,它是由系统自动加上的。当一个语句中使用多层括弧时常出现这类错误。main()C语言中对数组的定义或引用数组元素时必须用方括弧。......
2023-11-18
相关推荐