第四 C语言数据说明

C语言学习栏目目录

目录

4.1 int类型介绍

4.2 char类型介绍

4.3 float、double类型介绍

4.4 小结及其他数据类型简单介绍

4.5 类型大小


首先,还是先看一段小程序,如果发现有不熟悉的内容,别担心,我稍后会详细解释。

/************************************************************************
功能:C语言数据说明
设计说明:统计买的书本总价
函数说明
num:数量
price:价格
sum:总价
************************************************************************/
#include <stdio.h>
int main(void) 
{
	int num;				//购买数量
	float price;			//书本单价
	int sum;				//总价不带小数
	float Sum;				//总价带小数
	num = 5;				//赋值购买5本书
	price = 25.5;			//书本单价25.5元
	Sum = price*num;		//购买总价包含小数
	sum = price*num;		//购买总价不含小数
	printf("Sum = %f(包含小数),sum = %d(不含小数)\n", Sum, sum);
	system("pause");
	return 0;
}

     上面的程序功能是计算购买书本价格总价,程序的运行结果为:

Sum = 127.500000(包含小数),sum = 127(不含小数)
请按任意键继续. . .

    注意,代码中使用了一种新的变量声明。前面的例子中只使用了整数类型的变量(int),但是本例使用了浮点数类型(float)的变量,以便处理更大范围的数据。float 类型可以储存带小数的数字。在程序的指导下,计算机可以做许多事情,如数值计算、名字排序、执
行语言或视频命令、计算彗星轨道、准备邮件列表、拨电话号码、画画、做决策或其他你能想到的事情。要完成这些任务,程序需要使用数据,即承载信息的数字和字符。有些数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,这些称为常量(constant)。其他数据类型在程序运行期间可能会改变或被赋值,这些称为变量(variable)。在示例
程序中,sum是一个变量,25.5是一个常量。

    不仅变量和常量不同,不同的数据类型之间也有差异。一些数据类型表示数字,一些数据类型表示字母(更普遍地说是字符)。C通过识别一些基本的数据类型来区分和使用这些不同的数据类型。如果数据是常量,编译器一般通过用户书写的形式来识别类型(如,42是整数,42.100是浮点数)。但是,对变量而言,要在声明时指定其类型。稍后会详细介绍如何声明变量。现在,我们先来了解一下 C语言的基本类型关键字。K&C给出了7个与类型相关的关键字。C90标准添加了2个关键字,C99标准又添加了3个关键字如下表:

    在C语言中,用int关键字来表示基本的整数类型。后3个关键字(long、short和unsigned)和C90新增的signed用于提供基本整数类型的变式,例如unsigned short int和long long int。char关键字用于指定字母和其他字符(如,#、$、%和*)。另外,char类型也可以表示较小的整数。float、double和long  double表示带小数点的数。_Bool类型表示布尔值(true或false),_complex和_Imaginary分别表示复数和虚数。通过这些关键字创建的类型,按计算机的储存方式可分为两大基本类型:整数类型和浮点数类型。位、字节和字位、字节和字是描述计算机数据单元或存储单元的术语。这里主要指存储单元。

    最小的存储单元是位(bit),可以储存0或1(或者说,位用于设置“开”或“关”)。虽然1位储存的信息有限,但是计算机中位的数量十分庞大。位是计算机内存的基本构建块。
    字节(byte)是常用的计算机存储单位。对于几乎所有的机器,1字节均为8位。这是字节的标准定义,至少在衡量存储单位时是这样(但是,C语言对此有不同的定义,后续详细介绍)。既然1位可以表示0或1,那么8位字节就有256(2的8次方)种可能的0、1的组合。通过二进制编码(仅用0和1便可表示数字),便可表示0~255的整数或一组字符。
    字(word)是设计计算机时给定的自然存储单位。对于8位的微型计算机(如,最初的苹果机), 1个字长只有8位。从那以后,个人计算机字长增至16位、32位,直到目前的64位。计算机的字长越大,其数据转移越快,允许的内存访问也更多。

语言基本数据类型

1、整数(int):和数学的概念一样,在C语言中,整数是没有小数部分的数。例如,2、−23和2456都是整数。而3.14、0.22和2.000都不是整数。计算机以二进制数字储存整数,例如,整数7以二进制写是111。因此,要在8位字节中储存该数字,需要把前5位都设置成0,后3位设置成1

2、浮点数(float):浮点数与数学中实数的概念差不多。2.75、3.16E7、7.00 和 2e-8 都是浮点数。注意,在一个值后面加上一个小数点,该值就成为一个浮点值。所以,7是整数,7.00是浮点数。显然,书写浮点数有多种形式。稍后将详细介绍e记数法,这里先做简要介绍:3.16E7 表示3.16×10 7 (3.16 乘以10 的7次方)。其中, 10 7 =10000000,7被称为10的指数

    这里关键要理解浮点数和整数的储存方案不同。计算机把浮点数分成小数部分和指数部分来表示,而且分开储存这两部分。因此,虽然7.00和7在数值上相同,但是它们的储存方式不同。在十进制下,可以把7.0写成0.7E1。这里,0.7是小数部分,1是指数部分。图3.3演示了一个储存浮点数的例子。当然,计算机在内部使用二进制和2的幂进行储存,而不是10的幂。第15章将详述相关内容。现在,我们着重讲解这两种类型的实际区别。整数没有小数部分,浮点数有小数部分。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值