一、内存与字节
一个内存单元==一个字节==一个地址
整型 int 类型中int类型的字节数是4 且一个字节表示八个bite位 一个二进制数位有着32个bite
所以又可以表示为:一个字节 == 8个比特位 == 32位数的二进制数位的八分之一
例如: int a = 10;
该表达式表达的意思:向内存申请4个字节,用于存放数字10
—— 就是把10的32位二进制数位分为了四份,一份八位比特位
而四份,有不同的地址,而我们将地址位最低的哪一个地址,作为首地址使用。
而 & 作为取地址符号的时候 &a 就表示取a在内存中存放的地址 中的首地址 ,这和数组中的数组名一个意思,首地址可以代表a在内存中的所处空间位置。
二、内存与指针
int * p = & a
首先,我们想要把 &a存放到一个变量p中,而p也因此被称之位指针变量
而p的类型 则是 int *
而 * 则是说明 p是一个指针变量 —— 一个证明
int 表示的是 p 所指向的地址 &a 中 a 的一个类型
int * 又表示了 指针变量 p的类型
*p表示的是一种指向,通过p中存放的地址,找到地址指向的空间 *p就是变量a
p是存储指向内容的地址,是一个地址编号
如图所示,指针变量 p 中存放的其实是&a 也就是一个地址的编号,而这个地址编号又引导着指针变量p指向这个地址编号所表示的空间
就是相当于 指针变量p(*p)就是 变量a
所以当指针变量p(*p)发生改变时,变量a也会随之而改变
例如 : *p = 0 相当于 a = 0;