指针
在学习指针之前,我么需要了解什么是内存。内存是电脑上重要的存储器,计算机中所有成T恤运行的时候所需要的数据都会存储在内存当中。故而为了有效使用我们的内存,将其分为一个个小的存储单元,每个存储单元的大小为一个字节。
为了进一步更加有效的使用存储单元,我们给每个存储单元进行了编号,这些编号就是存储单元的地址(一般打印时使用十六进制进行打印)。
而指针就是指向这个内存地址的一个变量。通过我们长时间的学习可以通过使用时定义方式等手段知晓指针实际上就是内存地址的载体。
不同类型指针所占用的存储单元长度是相同的,但是存放数据的变量因为数据类型的不同,所占用的存储空间长度也不同,有了指针以后,不仅可以对数据本身进行操作,同时可以对存储数据的变量地址进行操作。
指针描述了书记在内存中的存储地址,一个指针一般指向这一段存储内容的首个字符的地址(首地址)。(示例如下
int a = 10;//在内存中开辟空间
int* arr = &a;//&a:去除变量a的地址,并将地址存放在arr变量中,arr就是一个变量指针
)
指针类型
指针类型并不决定所占内存的大小,其最主要的用处在于决定指针被解引用的时候要访问几个字节。
如上所说,不难想象指针类型也决定着指针的步长(就是对一个指针进行加操作),一个人走一步能走到哪取决于人的身高,就是这个道理。
野指针
野指针,顾名思义,就是指向方向未定(无头苍蝇)。
野指针的成因有以下几点:
1.指针未初始化 2.指针越界访问 3.指针指向的空间释放
二级指针
二级指针,说白了就是指针的平方,指向指针变量的地址的第二级指针。