指针:
1.指针就是变量,用来存放地址的变量。(存放在指针中的值都要被当做地址处理)
2.指针类型决定了指针进行解引用操作的时候,能够访问的空间大小。
》 int*p,*p能够访问4个字节;
》char*p,*p能够访问1个字节;
》double*p,*p能够访问8个字节。
指针类型决定了:指针走一步走的多远(指针的步长)。
》int*p;p+1----->4
》char*p;p+1------->1
》double*p;p+1------->8
3.野指针
》局部变量不初始化,默认随机值,例:int*p。
》指针越界访问
》指针指向的空间被释放。
如何规避野指针
》.指针初始化。
》.小心指针越界。
》.指针指向空间释放后不用时可以使其为NULL。
》.指针使用之前检查其有效性。
4.指针运算
》1.指针+-整数
》2.指针-指针------>(得到的是两个指针之间的元素个数《大地址减小地址》)
》3.指针的关系运算
5.
》&arr(&数组名)------>数组名不是首元素地址,此时数组名表示整个数组的地址。
》sizeof(arr)(sizeof(数组名))此时数组名表示整个数组,----sizeof( )表示整个数组的大小
6.二级指针(指针里面套用指针)
7.
》指针数组——(为数组,存放指针的数组)
》数组指针——(为指针)