- 指针是什么?
2个要点:
指针是内存中一个最小单元编号,也就是地址。
平时口语中说的指针,通常指的是指针变量,是用来存放地址的·变量。
总结:指针就是地址,我们口语中说的指针指的是指针变量。
指针的大小是多少?
在32位机中指针的大小是4个字节
在64位机中指针的大小是8个字节
2.指针和指针类型
变量有整型、字符型、浮点型等,那么指针有没有不同的类型?
我们通常创建指针变量有下面几种方式
可以看出指针变量也是有类型的。
int* 类型的指针存放的是int 类型的指针
char* 类型的指针存放的是char类型的指针
……
……
指针类型的意义:
一个整型变量可以用字符字符指针存放吗
从编译器中看好像可以是吧,那么我们通过字符指针变量操控整型是怎么操控的
那么我们将a变为0,用字符指针我们怎么操作
3.野指针
概念:野指针就是指针的指向不可以知道
野指针的成因
指针没有初始化
指针越界访问
如何避免野指针
1.指针使用要初始化
2.小心指针越界
指针指向的地址被释放,及时放置NULL
避免返回局部变量的地址
指针使用前检查有效性
4.指针运算
指针+-整数
指针+-整数就是跳过多少该类型的数据
eg
指针-指针
指针-指针即地址-地址(前提条件两个指针指向同一区域)
指针-指针=两个指针之间元素个数(有可能为负的)
指针的关系运算
标准规定:
允许指向数组元素的指针与指针数组最后一个元素后面的那个内存位置的指针比较
不允许与指向第一个元素之前的那个内存位置的指针进行比较
5.指针与数组
数组名可以表示首元素的地址