为了有效地完成数据存储任务,需要对存储器做如下处理:,下面我们就来聊聊关于c的变量类型大全?接下来我们就一起去了解一下吧!
c的变量类型大全
为了有效地完成数据存储任务,需要对存储器做如下处理:
1 划分:以字节(8个位bit,对应8个开关晶体管,0或1)为单位将存储器划分为一系列的存储单元。
2 编址:以线性方式给每个存储单元赋予唯一的存储地址,可以随机访问。
3 数据存储约定:数据以二进制形式放入存储空间,需要约定数据的存储空间大小、存储空间地址、数据编码和解码方式以及字节排序方式。如一个基本类型需要多字节时,用大头地址还是小头地址做为数据的地址?
3.1 数据的编码和解码方式
I 以补码方式存储整数;
II 通过ASCII编码方式存储字符;
III 以real-4或real-8方式存储浮点数(实数或小数);
3.2 大头还是小头,按理说只要统一约定就好,但是Intel公司的机器多采用小头方式,IBM、Sun等公司采用大头方式。一般情况下,可以不考虑字节排序方式的问题,但是在针对网络应用编写程序时,就必须关注使用哪种字节排序方式,这是因为网络程序通常需要在不同类型的机器之间交换数据。
为什么是8个bit为一个byte做为最小(基本)的存储单元呢?有两个原因使8显得很特殊。首先,8是2的3次方。由于计算机在最底层使用的是二进制位,而每一位只有两个可能的值,所以2的乘方用起来比10的乘方更方便。其次,需要8位(1个字节)才能对一个字符(比如一个英语字母或其他键盘符号)进行编码。
下面的变量声明和定义就暗含了上面全部的内容。
如果是数组变量、结构体变量或对象,其存储空间是如何映像的呢?本质也是通过变量名或对象名来确定其对应的内存空间的首地址,通过成员各自的长度或统一分配的长度来映像。
对于数组,就是首元素的地址,通过整数偏移来确定分量的地址。
结构体、对象的数据成员都是集中存储在一起的,确定了首地址,也就能按其成员类型给予的空间大小顺序找到各成员的地址。 不像数组通过整数(下标)来偏移,结构体、对象是从结构体、对象名称开始,通过引用数据成员变量名来进行偏移的。
一个结构体变量或对象的成员数据也是顺序存储在一起的,或者是按各自长度存储,或者编译器基于效率因素增加一些额外字节以使存储边界对齐。
-End-
,