内存 分割为字节(byte);每个字节 可以存储8位信息;01010011;
每个字节都有 唯一的地址(address) 字节信息(01010011)
地址 内容
0 0101011
1 01110101
2
3
4
..
..
..
n-1
可执行程序由 代码(与语句对应的机器指令), 数据(变量)构成;
程序中的每个变量占有一个或 多个内存; 把第一个字节的地址 作为变量的地址
变量 i占有地址为2000,2001的两个字节,所以变量i的地址是2000;
用数表示地址, 地址的取值范围不同于整数的范围,不能用 普通的整型变量存储地址
指针变量 存储地址 在用变量p存储变量i的地址时,p 指向i;
int *p; //p是(指向 int类型对象的) 指针变量
对象代替变量,p可以指向不属于变量的内存区域;
int *p;
double *q;
char *r;
取地址运算符; 间接寻址运算符;
为了找到变量的地址,需要& (取地址)运算符;如果x是变量,那么&x 就是x在内存中的地址;(已知变量,求地址 :&)
为了获得 指针指向对象的访问,使用 * 间接寻址运算符;如果p是指针,p表示 p当前指向的对象;(已知地址,求变量: )
int *p, i;
p = &i; // 通过把i的地址赋给 指针变量的方法,把p指向了i;
int i;
int *p = &i;
合并: int i, *p = &i; //首先声明i