admin 管理员组

文章数量: 887021


2023年12月16日发(作者:google翻译需要外网吗)

龙源期刊网

数据类型和存储模式在C程序设计中的重要作用

作者:王玲

来源:《电子世界》2013年第15期

【摘要】在C程序设计中,必须坚决执行变量、函数先定义,后使用的原则。在定义时务必做到,首先根据估算的可能发生的最大或最小值、充分考虑将要发生的各种运算,正确选择变量函数的数据类型,以避免数据溢出及运算异常。其次根据变量的作用域和生命历程,选择合理的存储模式,以优化程序,提高程序运行效率。

【关键词】合理定义;数据类型;存储模式;正确编程

1.一个简单程序带来的深层思考

有位学生在学习Turbo C语言程序设计时,根据圆周率的级数展开式:

这一程序,编译、连接时连警告信息也没有顺利通过,然而在运行时区发生了意想不到的错误结果。计算后输出的结果并非事先人们已经知道的3.141593,而是显示:

pi=2.000000

这说明,程序中存在软错误,即逻辑错误、数据类型错误、运算错误等。这位学生反复检查,却并未发现有数学运算方面的问题,找不到错误出现的原因。无奈之下,只好求助于老师。

老师看后告诉他:主函数完全正确,但两个子函数fact()、multi()及各函数体内的局部变量p的数据类型不对。不能把它们定义为int型,而应定义为double型。

学生根据老师的提示进行了修改,果然得到了正确的结论。但尚不明白为什么这么小小的修改,就会产生完全不同的结果。老师启发他,认真看书,务必搞清楚定义变量、函数时,正确选择数据类型的重要意义。

2.正确定义变量的数据类型是避免错误的有效方法之一

在C语言程序设计中,始终必须坚持一个非常行重要的原则,即变量必须“先定义而后使用”。变量的定义格式是:

数据类型 变量名1[=值1][,变量名2[=值2]……];

龙源期刊网

C语言的数据类型分为基本型、构造型、指针型、空型。他们决定了变量在内存中的存储形式、值域及所允许的运算。

2.1 数值类数据的机内存储形式

在C语言中基本数据类型分为:数值型、字符型、枚举型三大类。其中数值型数据又分为:整型、实型两个子类。

(1)整型数据以补码形式存储

整型数据又可细分为:短整型short、整型int、长整型long三类。Turbo C中,它们分别按1、2、4个字节(8、16、32个二进制位)以补码形式在计算机中存放。

(2)实型数据以浮点型是存储

实型数据又可细分为:单精度型float、双精度型double两类。Turbo C中,它们分别按4、8个字节(32、64个二进制位)以浮点形式在计算机中存放。

Float型数据存放时,1位数符位(0为正1为负)、1位阶符位(0为正1为负)、7位阶码位、23位尾数位。

double型数据存放时,1位数符位(0为正1为负)、1位阶符位(0为正1为负)、11位阶码位、52位尾数位。

以下面是+987.654浮点数在计算机内存储的示意格式。

2.2 数值类数据的值域

值域指数据所允许取值的范围。在C语言中整型数与实型数,因其存储形式不同,所以值域大有差别。

(1)整型数据的值域

用整型数据表示的数值绝对精确,但表示的范围却很有限。如超限会产生数据溢出,而可怕的是这种溢出C语言并不给出错误信息,全凭程序设计者的经验与细心才能避免。设一个整型变量m占n个二进制位,则它的取值范围为:

例如int整型变量,按2字节补码方式二进制存储,因此它的取值范围为:-215到+215-1之间,即:-32768到+32767之间。

(2)实型数据的值域


本文标签: 数据类型 错误 数据 变量 程序