学习C语言指针应注意的几个问题
作者:张尔谦
来源:《科教导刊·电子版》2015年第32
        指针是C语言中的一个重要概念。指针的引入增强了C语言的灵活性和高效性,同时由于指针的用法过于灵活也使得初学者经常感到难以驾驭,甚至经常出现理解错误和应用错误。本文对学习C语言指针应注意的几个问题进行了探讨。
        关键词 指针 空指针 C语言
        中图分类号:TP312.1-4 文献标识码:A
        指针的引入增强了C语言的灵活性和高效性,同时由于指针的用法过于灵活也使得初学者经常感到难以驾驭,甚至经常出现理解错误和应用错误。笔者认为初学C语言指针应注意以下几个问题。
        1正确理解定义指针基类型的必要性
指针变量本身有地址吗
        指针变量是存放地址的,但在定义指针变量时必须指明其基类型。例如:对指针变量p的定义(char * p;)这里的char即是指针变量p的基类型,也就是说定义p为指向字符型数据的指针类型。
        在定义指针时指明其基类型是非常有必要的。虽然C语言中允许定义通用指针类型(*void类型),但这种通用类型应被理解为指向空类型的数据或不能指向确定类型的数据,而不应被理解成可以指向任何类型的数据。在具体使用通用类型的指针时一般要通过显式强制类型转换将其转换成一个有确定类型的指针。例如,在C语言中通常利用malloc函数(该函数的原型为:void* mallocunsigned int size);)来实现内存的动态分配。该函数的返回值就是一个通用型指针,该指针不指向任何特定数据类型的数据,它只是返回malloc函数所分配的内存空间的第一个字节的地址。在真正利用这段内存空间存储数据时,一般还要通过显式强制类型转换将其转换成一个有确定类型的指针,例如:p=int*malloc100*sizeofint)),这样就在内存中开辟出了能存放100个整型数字的空间,而基类型为整型的指针p指向这段内存空间的第一个字节。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。