为什么需要介绍数据类型
学习语言编程,不用急着写代码,先搞懂基本概念。有了基本概念后,然后再考虑在不同的语言中是如何表达的。不同语言无非就是表达方式不一样而已,万变不离其宗。
每一门语言开始部分中总是要介绍数据类型,很多人会问,为什么总是要介绍这些呢?
原因是与CPU的底层处理有关,了解这些细节有助于你写出正确的程序。针对每一种数据类型,在不同类型的CPU平台(8位、16位、32位、64位),在不同的语言中都有不同的表示方法。
由于C语言是跟底层打交道的语言,对于数据类型的了解尤其重要,光是为了准确的表示数据类型的关键字就有好几个,版本的更新会不断的扩充关键字,以适应越来越复杂的CPU的变化。
最初的 K&R 版 关键字:
int(整数)
long(长)
short(短)
unsigned(无符号)
char(字符)
float(浮点数)
double(一倍,双)
后来定稿C90标准后,又增加了signed (有符号)和void(空缺的)两个关键字。到了C99又增加了三个关键字_Bool(布尔),_Complex(复数),_Imaginary(虚数i)。通过关键字之间的组合可以表达各种不同的基本数据类型。
每一种数据类型,必须要了解数据宽度(位数)这个概念,说白了就是不同类型的数据在内存中运行时究竟占用多少位。
以32位的x86平台为列,CPU指令系统可以支持的只有byte(字节8位),word(字16位),Dword(double word32位),无论多复杂的数据类型,到了底层就是8、16、32这几种,因为CPU内部的寄存器就是只有这几种。