一、指针基础
1.不同内存变量的作用域和生命周期
2.指针与底层硬件联系紧密,指针可操作数据的地址,实现对数据的简介访问。
3.指针的使用场景:
3.1 使用指针传递大容量的参数,主函数和子函数使用的是同一套数据,避免了参数传递过程中的数据复制,提高了运行效率,减少了内存占用。
3.2 使用指针传输输出参数,利用主函数和子函数使用同一套数据的特性,实现数据的返回,可实现多返回值函数的设计
3.3 传递返回值:将模块内的公有部分返回,让主函数持有模块的’句柄‘,便于程序对指定对象的操作
3.4 访问硬件指定内存下的数据,如设备ID、对寄存器的操作等。
3.5 将复杂格式的数据转为字节,方便通信与存储。
4.指针的值存储的是变量的地址,地址的长度与CPU的位宽相关,如:
32位的CPU,地址长度是四个字节
64位的CPU,地址长度是八个字节
5.指针与数组:数组是指针的特殊表现形式而已,数组名就是指针变量名,指针的地址存储的是数组的首地址,其他复杂的数据类型同样也是存储首地址。
6.指针变量的运算:因为指针存储的是地址,所以在一般情况下指针变量只有加减运算,指针变量没加、减1,地址就会加、减对应的类型的字节数,如:short 类型的指针变量+1,地址就会偏移2个字节, int类型的指针变量+1,地址就会偏移4个字节。
7.特殊类型的指针:
7.1 void指针,俗称’通用指针‘,通常在一些系统库函数的参数会用到void指针,因为它要具备通用性,就不清楚程序员在调用此类函数时 候传递的参数是什么类型的指针。
7.2 null指针,俗称’空指针‘,通常会被赋值0.
8. 使用指针时,需要注意的事项
标签:存储,字节,地址,指针,数据,变量 From: https://www.cnblogs.com/zhanghongfei/p/17454017.html