⽬录:
1. 内存和地址
2. 指针变量和地址
3. 指针变量类型的意义
4. const修饰指针
5. 指针运算
6. 野指针
7. assert断⾔
8. 指针的使⽤和传址调⽤
---------------------------------------------------------------------------------------------------------------------------------
正文开始
1. 内存和地址
1-1 内存
内存就如同生活中的房间一样,房间都有门牌号,内存也是这样的,内存划分为⼀个个的内存单元,每个内存单元的⼤⼩取1个字节。
补充:计算机中常见的单位:
⼀个⽐特位可以存储⼀个2进制的位1或者0
bit - ⽐特位 byte - 字节 KB MB GB TB PB | 1byte = 8bit 1KB = 1024byte 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB 1PB = 1024TB |
其中,每个内存单元,相当于⼀个学⽣宿舍,⼀ 个⼈字节空间⾥⾯能放8个⽐特位,就好⽐同学们 住的⼋⼈间,每个⼈是⼀个⽐特位。
每个内存单元都有编号,也就相当于房间的门牌号,有了内存单元的编号,CPU就可以快速找到一个内存空间了。
在计算机中,内存单元的编号也称为地址。C语音中,给地址起 了新的名字叫:指针。
所以:内存单元的编号 == 地址 == 指针
1-2 如何理解编址
⽽CPU和内存之间也是有⼤量的数据交互的,所 以,两者必须也⽤线连起来。
地址总线:我们可以简单理解,32位机器有32根地址总线, 每根线只有两态,表⽰0,1(电脉冲有⽆),那么 ⼀根线,就能表⽰2种含义,2根线就能表⽰4种含 义,依次类推。32根地址线,就能表⽰2^32种含 义,每⼀种含义都代表⼀个地址。
通过地址总线 将地址信息传给内存,在内存上,就可以找到 该地址对应的数据,将数据在通过数据总线传⼊ CPU内寄存器。控制总线进行读与写。
颇有不足,欢迎提建议!