1.内存四区
a)代码区
b)全局区:全局的常量字符串,常量‘abc’,变量;
c)栈区:系统自动开辟,自动释放,内存并不是很大;
d)堆区:动态开辟的内容,手动开辟,手动释放。很大。
2.地址
概念:把内存以单个字节为单位分开,对每一个字节编号,这个编号就是地址。
a)编号是连续的;
b)具有唯一性;
c)取地址运算符:& (为单目运算符。即运算所需变量为一个),优先级()[] . 结合性从右往左。
3.首地址
概念:一段内存空间中的第一个存储单元的地址。
注:第一个存储单元是随着数组元素大小在变化的,并非特指计算机固定的存储单元(字节)。
4.指针变量
1.用来存放地址的变量
2.内存大小为4字节(32位计算机)、8字节(64位计算机)
引用:a)使用变量名:如 p; b)指针访问:*p
野指针:即不能明确指向的指针变量
int*p; //指向不明确,若设计重要数据,很危险!!
解决方法:int *p=NULL
空指针:void* 转换成其他类型的指针
5.指针变量的运算
指针变量的加减,以指针所指向的类型空间为单位进行偏移
如:char *p // char 1字节 ;p+1 1B
int *p1 // int 4字节 ; p1+1 4B
double *p2 // double 8字节 ; p2+1 8B