指针
提高程序灵活性 简化程序逻辑
可以直接操作内存
地址 用来区分内存中不同地址的编号
指针 指针的值是一个地址编号 指针具有类型
指针指向已自己指向类型的连续空间;
类型 从起始位置开始的字节数
值 连续类型空间的起始位置
指针变量 用来保存指针类型数据的变量。
1.指针变量的值 指向一段空间起始地址的地址编号
2.数据类型 指针变量指针所指向空间的数据类型
有值有空间 指向另外一段内存空间的起始编号 空间 保存自身变量的值的空间
指针初始化
int *p=NULL,*p0=NULL;
int *p; //
野指针
指针运算符 获取一个指针数据所指向的空间
指针变量的操作
1.直接访问指针变量自身空间 p = ;
2.间接访问 造作指针变量指向的空间 *p = ;
4.指针的运算
加法 *p +N 向高地址偏移自身指向空间的数据类型字节数的N倍数
减法 *p - N 向低地址偏移自身指向空间的数据类型字节数的N倍数
p + p 没有特定的含义
p - p 同种类型的指针偏移量 符号表示了高低位
自加 p++ 偏移一个向高地址偏移自身指向地址的N倍数
自减 p -- 向低地址偏移自身指向空间的数据类型字节数的N倍数
5.指针与数组的关系
数组的数组名是指向数组首元素的指针常量。
arry[n] == *(arry + n) == *(p+n) == p[n]
6 指针与字符型数组的关系