Chinaunix首页 | 论坛 | 博客
  • 博客访问: 256068
  • 博文数量: 78
  • 博客积分: 1810
  • 博客等级: 上尉
  • 技术积分: 1039
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-20 11:11
文章存档

2012年(78)

我的朋友

分类: LINUX

2012-03-23 09:08:57

    想要深入地了解数据的存储,了解数据的类型是必不可少的,刚好,昨天我也复习下了数据类型这个内容。所以想写篇博客来记录下。
 
 
C语言中,我们在定义变量时需要指定变量的类型。那么什么是变量的类型呢?变量的类型如何划分的?不同变量在分配内存时又是如何分配呢?下面,就来看看这个问题。
为什么在用计算机运算时,要指定数据的类型呢?在数学中,数值是不分类型的,数值的运算是绝对准确的。数学是一门研究抽象的学科,数和数的运算都是抽象的。而在计算机中,数据是存放在存储单元中的,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数。
例如:printf("&f",1.0/3.0)
我们得到的结果是0.333333,只能得到6位小数,而不是无穷位的小数。
 
那么什么是类型?
所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。
 
C语言的数据类型划分如下:
 
注意下:类类型(class)是C++特有的数据类型。C语言并没有。
 
不同类型的数据在内存中占用的存储单元长度是不同的。
例如,Visual C++ 6.0 为char型数据分配1个字节,为int型数据分配4个字节。
 
下面详细讲讲各种数据的类型:
1.整形数据
(1)基本整形(int型)
  Visual C++ 6.0为int型数据分配4个字节,在存储单元中的存储方式是:用整数的补码形式存放。一个正数的补码是此数的二进制形式,如5的补码为101(前面的数为29个0)。如果是一个负数,则应先求出负数的补码。求负数的补码方法是:先将此数的绝对值写成二进制形式,然后对其后面所有各二进位按位取反,再加1。
  在存放整数的存储单元中,最左面一位用来表示符号的,如果该位为0,表示数值为正;该位为1,表示数值为负。
(2)短整型(short int)
  Visual C++ 6.0为short int型数据分配2个字节,存储方式与int型相同。
(3)长整型(long int)
  Visual C++ 6.0为long int型数据分配4个字节。也就是说Visual C++ 6.0基本整形(int型)为long int型
(4)双长整型(long long int)
 Visual C++ 6.0为long long int型数据分配8个字节。
 
2.字符型数据
 Visual C++ 6.0 为char型数据分配1个字节。
 
3.浮点型数据
 浮点型数据是用来表示具有小数点的实数的。
 在c语言中,实数是以指数形式存放在存储单元中的。
 浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点型)
(1)float型(单精度浮点型)
  编译系统为每一个float型变量分配4个字节,数值以规范的二进制指数形式存放在存储单元中。
(2)double(双精度浮点型)
  编译系统为每一个double型变量分配8个字节
(3)long double(长双精度浮点型)
  Visual C++ 6.0对long double的处理和double型一样,分配8个字节。
 
注意:对于浮点型常量,C编译系统都按双精度处理,分配8个字节。
 
 
 
 
 
 
自增、自减运算符
++i,--i(在使用i之前,先使i的值加(减)1)
i++,i--(在使用i之后,使i的值加(减)1)
阅读(2489) | 评论(0) | 转发(0) |
0

上一篇:字符串的定义

下一篇:关于学习Perl

给主人留下些什么吧!~~