数据类型概述
数据类型分类
基本数据类型
构造数据类型
指针类型
空类型
标识符规范
在C语言中,一般标识符用于 变量名、宏名、函数名…
注意事项:
- 可用数字、英文字母(大小写)、下划线、美元符
形如:data、temp、func()、add_int()、xxx_123() - 数字不能位于开头
- 不能和关键字重复
sizeof()计算空间占用情况
备注:
- sizeof()本质是运算符,不是函数!
- ()中的语句不会执行,只提供计算
存储单位
最小单位:位 (bit)
基本单位:字节 (byte)
对应关系:
1 byte = 8 bits
1 kb = 1024bytes
1 mb = 1024kb
1 gb = 1024mb
1 tb = 1024gb
整形
整形存储原理
实际底层均以“补码”存储,除了补码,还有原码、反码,正数和负数对三码的定义有所不同。
对于正数,三码一致,直接将数值转换为二进制即可(是原码 也是反码 也是补码),即为底层存储。
对于负数:
- 原码:将数值先转换为二进制,得到原码
- 反码:将原码符号位以外的其他位按位取反,得到反码
- 补码:将反码加一,得到补码
比如:
-
short x;底层存储的二进制为 0000 0000 0001 0010 // 18
-
若short x = -101;求其三码
原码:1000 0000 0110 0101 64 + 32 + 4 + 1
反码:1111 1111 1001 1010
补码:1111 1111 1001 1011 -
short x;底层存储的二进制为 1111 1111 1111 0010
已知补码是:1111 1111 1111 0010
得到反码: 1111 1111 1111 0001
得到原码: 1000 0000 0000 1110 -14(最高位的1表示十负数,后续表示的是绝对值)
浮点型
浮点型存储原理
形式:double/float 变量名 = 数值eN;
含义:方便移动小数点位置
备注:e(固定写法)表示以10为底数,N(填数值,正数负数都可以)表示次幂。
字符型
核心字符 | 对应的ASCII |
---|---|
‘\0’ | 0 |
‘\n’ | 10 |
‘ ’ //空格字符 | 32 |
‘0’ | 48 |
‘A’ | 65 |
‘a’ | 97 |