学习C语言时的那些我们共同的疑问(持续更新...)

本文探讨了在C语言中指定数据类型的重要性,解释了浮点数(实数)被称为浮点数的原因,强调了常量类型划分的必要性。同时指出C语言编程时除了语法错误外还存在数据类型的误差,并提醒读者计算机输出的数字并非总是精确。此外,还讨论了数据的存储限制,例如浮点数的有效数字和整数的存储方式。
摘要由CSDN通过智能技术生成

参考资料:C语言程序设计(第四版)谭浩强著

目录

Q1:为什么在用计算机运算时,要指定数据的类型?

Q2:浮点型数据是用来表示具有小数点的实数的。为什么在C中把实数称为浮点数呢?

Q3:在C语言中,不仅变量有类型,常量也有类型。为什么要把常量分为不同的类型呢?

Q4:为什么说“使用C语言进行编程时,还存在语法错误之外的错误?”

Q5:“不要以为计算机输出的所有数字都是绝对精确有效的”这句话如何理解?


Q1:为什么在用计算机运算时,要指定数据的类型?

 A1:因为在数学中,数值是不分类型的,数值的运算是绝对准确的,例如: 78与97之和为175,1/3 的值是0. 3333333...(循环小数)。数学是一门研究抽象的学科,数和数的运算都是抽象的。而在计算机中,数据是存放在存储单元中的,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数。

例如用C程序.计算和输出1/3:
        printf("%d" ,1.0/3.0);
得到的结果是0.333333,只能得到6位小数,而不是无穷位的小数。


Q2:浮点型数据是用来表示具有小数点的实数的。为什么在C中把实数称为浮点数呢?

A2:因为在C语言中,实数是以指数形式存放在存储单元中的。一个实数表示为指数可以有不止一种形式,如3.1416可以表示为: 3. 14159X10° 、0. 314159X 10' 、0. 0314159X10² 、31.4159X10ˉ¹ 、314. 159X10ˉ²等,它们代表同一个值。可以看到:小数点的位置是可以在31416几个数字之间和之前或之后(加0)浮动的,只要在小数点位置浮动的同时改变指数的值,就可以保证它的值不会改变。由于小数点位置可以浮动,所以实数的指数形式称为浮点数


Q3:在C语言中,不仅变量有类型,常量也有类型。为什么要把常量分为不同的类型呢?

A3:因为在程序中出现的常量是要存放在计算机中的存储单元中的。这就必须确定分配给它多少字节,按什么方式存储。例如,程序中有整数12,在Visual C++ 6.0中会分配给它4个字节,按补码方式存储。


Q4:为什么说“使用C语言进行编程时,还存在语法错误之外的错误?”

A4:由于C语言使用灵活,在不同类型数据之间赋值时,常常会出现数据的失真,而且这不
属于语法错误,编译系统并不提示出错,全靠程序员的经验来找出问题。这就要求编程人员
对出现问题的原因有所了解,以便迅速排除故障。


Q5:“不要以为计算机输出的所有数字都是绝对精确有效的”这句话如何理解?

A5:因为在用%f输出时要注意数据本身能提供的有效数字,比如double型数据能保证15位有效数字。float型数据的存储单元只能保证6位有效数字。来看下面两个例子你就应该明白了↓


... 待更新 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuxuanmei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值