一 .变量的类型及其所占内存大小
刚开始学习C语言的时候就会接触到变量的这个概念,变量有很多种类,整型,浮点型等。那么就要了解一下每种类型的变量的含义、能够存储的数据的范围、以及它所占内存的大小。
提及到所占内存大小,与操作系统的位数有关。
以下提及到的内存大小均是在32位操作系统下。
要想知道每个变量所占内存的大小,可以用到一个计算字节大小的操作符:sizeof
如下:
各种变量及其所占内存大小一目了然。
1.整型变量:
(1)int:
①signed int:表示有符号整型变量 所能存储的数据范围是:-21亿~+21亿。
②unsigned int:表示无符号整型变量 所能存储数据的范围是:0~42亿9千万。
long 、long long等也有无符号与有符号之分。
所占内存:4个字节。(4 Byte)
(2)long
存储数据的范围与int相同。
所占内存:4个字节。(4 Byte)
(3)long long 0~2^64
存储数据暂时可以认为无穷大,因为它所能存储的数据,现阶段我们还接触不到它的上限。
(4)short
存储数据的范围:0 ~ 65535 或 -32768 ~ 32767
所占内存:2个字节 (2 Byte)
2.字符变量 char
存储数据的范围:0 ~ 255 或 -128 ~ 127
所占内存:1个字节 (1 Byte)
3.浮点型:
(1)单精度float:
所占内存:4个字节(4 Byte)
(2) 双精度double:
所占内存:8个字节(8 Byte)
4.指针变量:
指针变量其实就是存储着一个表示内存地址的16进制整数。
所占内存:
4个字节 (4 Byte) (32位操作系统)
8个字节 (8 Byte) (64位操作系统)
注意:
虽然已经了解到每个变量所标能表示的数据的上限,但是定义变量的时候,尽量不要选用范围较小的类型。优先选用int和double。数据溢出所造成的麻烦可比耗费那几个字节的内存空间要恶心的多。