【时时三省】(C语言基础)数据类型
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
数据类型
C语言要求在定义所有的变量时都要指定变量的类型常量也是区分类型的。
为什么在用计算机运算时要指定数据的类型呢?在数学中,数值是不分类型的,数值的运算是绝对准确的,例如:78与97之和为175,1 / 3的值是0.33333333…(循环小数)。数学是一门研究抽象问题的学科,数和数的运算都是抽象的。而在计算机中,数据是存放在在储单元中的,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数,例如用C程序计算和输出1 / 3
printf ( " % f , 1.0 / 3.0 );
得到的结果是0.333333,只能得到6位小数,而不是无穷位的小数。
注意:用计算机进行的计算不是抽象的理论值的计算,而是用工程的方法实现的计算,在许多情况下只能得到近似的结果。
所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。
C语言允许使用的类型见图,图中有*的是C99所增加的。
其中,基本类型(包括整型和浮点型)和枚举类型变量的值都是数值,统称为算术类型arithmetic type )。算术类型和指针类型统称为纯量类型( scalar type ),因为其变量的值是以数字来表示的。枚举类型是程序中用户定义的整数类型。数组类型和结构体类型统称为组合类型( aggregate type ),共用体类型不属于组合类型,因为在同一时间内只有一个成员具有值。函数类型用来定义函数,描述一个函数的接口,包括函数返回值的数据类型和参数的类型。
不同类型的数据在内存中占用的存储单元长度是不同的,例如,VisualC++为char型(字符型)数据分配1个字节,为int型(基本整型)数据分配4个字节,存储不同类型数据的方法也是不同的。