想要理解指针,先要理解内存(指针概念篇)
1.内存是计算机上的一种存储介质,也可以理解为存储空间。
现在电脑一般有8G/6G
程序运行的时候会载入内存
程序中如果有数据需要储存,也会申请内存空间。
如果想知道程序运行的时候会载入空间,你只需要打开任务管理器即可,(打开任务管理器的方法:按住ctrl+alt+del) 例如QQ在运行占了257.2MB内存,即申请了内存空间。如下
2.电脑是怎样管理和分配内存的呢,
我们把内存比作一栋楼,里面有很多房子,我们给房子编号,即门牌号。我们把一个内存单元比作房子,把指针比作地址。(实践中,一个内存单元大小是一个字节)
我们买的电脑一般是64位或者32位的操作系统,下面用32位操作系统举例说明
32位机器会有32根地址线,地址线如果通线,(电信号会有高电频低电频 ,对应的是二进制中的1和0),32根地址线转化成二进制,所对应数字信号的所有可能性就是:
00000000000000000000000000000000 这个二进制序列作为第一个内存单元就是0
00000000000000000000000000000001 这个二进制序列作为第一个内存单元就是1
00000000000000000000000000000010
……
11111111111111111111111111111111
总共可产生2的32次方次方个二进制序列,每一个代表内存单元的编号,就可以作为2的32次方个地址,一个地址管理1个内存单元,那么就可以管理2的32次方个内存单元,也就是管理2的32次方个字节的内存空间
内存单元的编号、在c语言中就叫做指针。
3.那么232个字节(byte)是多大呢 一个字节是8个比特位
0001 0000 0000 0000 0000 0000 0000 0000 0000
从左往右第一个0代表的是2的0次方,那么从左往右第33个1代表的就是2的32次方。
1kb=1024byte 1mb=1024kb 1gb =1024 mb
经过计算得到2的32次方个字节是4GB。
下篇预告:指针秒懂2(小牛试刀)