一、常量和变量
常量:【在程序运行过程中】,其值不能改变的量称之为常量
变量:在程序运行过程中,值能被改变的量
对于变量,这种解释较为浅显
其实,对变量来说,计算机会给变量分配内存空间,内存空间的最小单位为字节Byte
例如 int类型,当定义一个 int a = 1234时
计算机会给它分配一个4字节的对应的内存空间,用来存放其对应的值,修改变量的值其实就是修改变量对应内存空间中存放的值,变量存放在RAM中,RAM的读写速度快,但是断电后数据会丢失。
任何变量都有对应的内存空间。
二、计算机组成
计算机的结构基本分为两种:
CPU(中央处理器):主要负责计算。
RAM(随机访问存储器):主要负责存放数据。
一个CPU可以引出三条总线与RAM进行连接分别是:地址总线、数据总线、控制总线。
对于CPU,现有的CPU有32位和64位的,对于32位的CPU,它的寻址范围为2^32 = 4GB,64位CPU寻址范围为2^64=8GB。
三、标识符
C语言中对标识符有三个要求:
1.只能由数字、字母、下划线组成,且不能以数字开头。
2.不能使用C语言中的关键字或者二类字作为标识符。
3.名字尽量要见名知意,即选择有含义的英文单词作为变量名或者标识符的名字,以增加代码的可读性。
四、数据类型
数据类型的必要性:
数据类型决定了计算机如何选择合适的方法对数据进行计算处理。
1.整型(int)
整型常量:即整型常数 有十进制数、八进制数(以0开头)十六进制(以0x开头)
八进制和十六进制可以便捷地和二进制之间进行转换。三位二进制位代表一位八进制位,四位二进制位代表一位十六进制位。
八进制与对应的二进制数:
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
十六进制与对应的二进制数:
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A | 1010 |
B | 1011 |
C | 1100 |
D | 1101 |
E | 1110 |
F | 1111 |
一个字节刚好对应2位十六进制位。
整型变量:【signed int 】 整型
int | 整型 |
unsigned int | 无符号整型 |
short | 短整型 |
unsigned short | 无符号短整型 |
long | 长整型 |
unsigned long | 无符号长整型 |
long long | 超长整型 |
unsigned long long | 无符号超长整型 |
int类型定义的变量
补码:原码按位取反后+1
负数在内存中以补码的形式存储
int类型的最大表示范围为:-2^31~2^31-1
整型溢出:当存储的值超过了int类型的最大表示范围时,就会发生溢出
小端存储:高字节放在高地址,低字节放在低地址。
00300010000 78
00300010001 56
00300010002 34
00300010003 12
大端模式:高字节放在低地址,低字节放在高地址。
【unsigned int】 无符号整型 占4byte
取值范围为 0~2^32-1
【short】 短整型 占2个字节
取值范围为 - 2^15~2^15-1 [-32768,32767]
【unsigned short】无符号整型
【long】长整型 占用8个字节
【unsigned long】无符号长整型
【long long】占用8个字节
2.浮点型(float)
浮点数常量有两种表示方法:
十进制小数:2.65
指数形式:2.56e5 = 2.56*10^5
浮点数变量:
float (单精度浮点型)4byte
一个浮点数由三个基本成分构成:
-
符号位:1bit
-
阶码 :8bit
-
尾数 :23bit
其中符号位:0代表正数,1代表负数。
阶码:将十进制数进行二进制规范化后的指数值+127,然后转化为二进制数后即为阶码
例如:十进制数-6.25 二进制规范化为1.1001*2^2,其中指数2+127 = 129 ,转为二进制为10000001,即为阶码。IEEE754规定了float浮点数的指数的偏移量是127。
尾数:看规范化后的式子,小数部分是1001,这个就是尾数位了,但由于这个尾数部分总共有23位,所以还要在后面补19个0
double(双精度浮点型)8byte
在C语言中要注意类型匹配,即进行运算的双方数据类型要一致。
long double (长双精度浮点型) 16byte
3.字符型(char)1byte
字符常量
字符型在存储时是以ASCII码形式存放,并不是字符存放。用一对单引号 引起来
'A'在计算机中存储的是它的ASCII码值 65。
转义字符:以'\'开头的字符序列,其有特殊的意义。