指针是什么
1.指针是内存中一个最小单元的编号,就是地址
2.口语中所说的指针,通常指的是指针变量,是用来存放地址的变量
p指针保存的就是a的地址,一个int占四个字节,指针p只保存a的首地址
指针和指针类型
注意不管什么类型指针在32位平台所占大小都是4个字节,在64位平台都是占8个字节。
那为什么要有不同指针呢?
看这里,用char*指针保存a的地址,修改a的值,从0x11223344只变成了0x11223300;
指针类型决定了,在解引用的时候访问几个字节
指针的类型还决定了指针向前或者向后一步能走多大距离
野指针
野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明确限制的)
野指针原因
1.指针未初始化
2.指针越界访问
3.指针所指向的空间被释放
如何规避野指针
1.指针初始化
2.小心指针越界
3.指针所指向的空间释放就置为空
4.避免返回举报变量的地址
5.指针使用之前检查有效性
指针运算
指针+ -整数
指针-指针
指针-指针得到的是两个指针之间元素的个数
二级指针
二级指针存放的是一级指针的地址