今天需要预习的内容是指针。
指针作为C语言编程中一种非常灵活的使用工具,学会正确的使用可以带来很大的方便,可以直接切入问题的核心。
1.指针到底是什么?
指针是变量,指针有变量的特性,系统为指针分配内存空间,指针有自己的地址,指针能够存值,存的内容是地址。
2.关于*p操作
(1)在声明指针中,“*”号表示所声明的变量是一个指针。
(2) 在指针使用时,“*”号表示操作指针所指向的内存空间中的值。
(3)当*p放在等号的左边时,相当于给内存赋值。
(4)当*p放在等号的右边时,相当于从内存中获取值。
3.指针的数据类型是指它所指向的内存空间的数据类型。当指针步长自加的时候,是根据所指向的内存的数据类型来确定的。
若在32位的系统上,一个指向整型数据的指针,自加的话,是加4。
4.关于解决野指针的方案
(1)定义指针时,把指针变量赋值为null;
(2)释放内存时,先判断指针变量是否为null;
(3)释放内存完毕后,把指针变量重新赋值为null
当然指针不仅仅只是这么简单,这只是指针的基础,但是其他指针的使用全部是建立在这基础之上,因此,熟练掌握指针的基础是十分必要的,并且加以利用,这样就可以解决在工作学习中遇到更加复杂指针的情况了。如有不当之处,请大家指出,相互学习,共同进步。
指针作为C语言编程中一种非常灵活的使用工具,学会正确的使用可以带来很大的方便,可以直接切入问题的核心。
1.指针到底是什么?
指针是变量,指针有变量的特性,系统为指针分配内存空间,指针有自己的地址,指针能够存值,存的内容是地址。
2.关于*p操作
(1)在声明指针中,“*”号表示所声明的变量是一个指针。
(2) 在指针使用时,“*”号表示操作指针所指向的内存空间中的值。
(3)当*p放在等号的左边时,相当于给内存赋值。
(4)当*p放在等号的右边时,相当于从内存中获取值。
3.指针的数据类型是指它所指向的内存空间的数据类型。当指针步长自加的时候,是根据所指向的内存的数据类型来确定的。
若在32位的系统上,一个指向整型数据的指针,自加的话,是加4。
4.关于解决野指针的方案
(1)定义指针时,把指针变量赋值为null;
(2)释放内存时,先判断指针变量是否为null;
(3)释放内存完毕后,把指针变量重新赋值为null
当然指针不仅仅只是这么简单,这只是指针的基础,但是其他指针的使用全部是建立在这基础之上,因此,熟练掌握指针的基础是十分必要的,并且加以利用,这样就可以解决在工作学习中遇到更加复杂指针的情况了。如有不当之处,请大家指出,相互学习,共同进步。