1.
指针是什么?
指针是什么?
指针理解的
2
个要点:
指针是内存中一个最小单元的编号,也就是地址,通常指的是指针变量,是用来存放内存地址的变量。
总结:指针就是地址,口语中说的指针通常指的是指针变量。
指针变量
我们可以通过
&
(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个
变量就是指针变量
指针变量,用来存放地址的变量。
2.
指针和指针类型:
要将
&num
(
num
的地址)保存到
p
中,我们知道
p
就是一个指针变量,那它的类型是怎样的呢?
我们给指针变量相应的类型。
这里可以看到,指针的定义方式是:
type + *
。
其实:
char*
类型的指针是为了存放
char
类型变量的地址。
short*
类型的指针是为了存放
short
类型变量的地址。
int*
类型的指针是为了存放
int
类型变量的地址。
指针
+-
整数
指针的类型决定了指针向前或者向后走一步有多大(距离)。
3.
野指针
概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)
3.1 什么是
野指针
1. 指针未初始化
2.
指针越界访问
3.2
如何规避野指针
1.
指针初始化
2.
小心指针越界
3.
指针指向空间释放即使置
NULL
4.
避免返回局部变量的地址
5.
指针使用之前检查有效性