C语言——数据类型
2020-04-08 本文已影响0人
lxmic
引自行者三个石
写在前面
- 图中是C语言的所有数据类型,在计算机中,数据是存储在计算机中的一个个单元里面,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元存储的数据是有限的,不可能存放无限大的数,也不能存放无限循环小数.
- 计算机内存:在执行程序时,组成程序的指令和数据都必须存储在计算机内存中,即RAM。
- RAM其实可以看成是一排井然有序的盒子。每个盒子有两种状态:0和1,也就是代表一个二进制数:0或者1。每个盒子称为一个位(bit)。每8个位组成一个字节(byte)。计算机中,一个英文字母是一个字节,中文汉字是两个字节。
整数类型
- 基本类型(int类型)
我们的gcc是给每个整数型分配四个字节(32个二进位)。所以四个字节的整数型取值范围是 -2^31 到(2^31-1)。 - 短类型(short类型)
gcc分配给2个字节,取值 -2^15 到(2^15-1)。 - 长整型(long类型)
gcc分配8个字节,取值范围:-2^63 到(2^63-1)。
浮点型数据
浮点型数据是用来表示具有小数点的实数的。为什么叫浮点型?因为在C语言中,实数是以指数的形式存放在存储单元的。而实数的指数可以变化,通过移动小数点的位置,而整个实数值是不会发生变化的,因此叫做浮点型。
- float(单精度)
gcc编译系统为其分配4个字节,存储时分为小数部分和指数部分,分别存储可以得到7位。 - double(双精度)
用8个字节(64位)存储一个double型数据,可以得到15位有效数字。 - long double
用16个字节(128位)存储一个long double型数据型,可以得到18位有效数据。
字符型
字符型常量通常是用单引号括起来的一个字符,所有的编译系统中,都是用1个字节(8位)来存放一个字符。字符型数据在存储时,是通过相应的ASCII码值放到存储单元中。字符常量,是区分大小写的,因为对于的ASCII码不同。
字符串常量
- 字符串常量是用一对双引号括起来的零个或多个字符组成的序列,如 "hello","chine","f" 都是字符串常量。
- 字符串常量的存储与字符常量的存储是不同的。字符串中的每个字符占用一个字节,在存储字符串常量时还要自动在其末尾加上 '\0' 作为字符串结束的标志。
所以大家一定要区别清楚,'a'和"a"是完全不同的。前者是字符常量,一个字节;而后者是字符串常量,有两个字节,‘b’和'\0'.