指针变量是存放地址的变量,该指针变量的数值就是其指向变量的内存地址,所以通过指针变量的数值就可以获得和使用变量的数值。对于指针变量也要遵循先定义后使用的原则。
对于指针变量的定义,一般采用以下定义形式:
在定义指针变量时,既要说明它是一个指针,同时也要说明该指针指向哪种类型的数据。
其中:
1)“数据类型”是指针变量所指向的变量的数据类型,确定了指针所指向的内存单元的字节长度以及所存储数据的大小范围。
2)“指针变量名”是一个变量名称,遵循C语言关于标识符的约定。
3)“*”表明此处定义的是指针。
例如:
表示定义了三个指针变量p1、p2、p3,其中p1可以指向一个整型变量,p2可以指向一个单精度实型变量,p3可以指向一个字符型变量,也就是说,p1、p2、p3可以分别存放整型变量的地址、单精度实型变量的地址、字符型变量的地址。
根据赋值的位置不同,可以有2种形式:
1)先定义指针变量,然后再赋值。
例如:
(www.xing528.com)
2)在定义指针变量时同时进行初始化。
例如:
上述例子中,赋值语句p1=&i表示将变量i的内存地址赋给指针变量p1,此时p1就指向变量i。同理类推,p2指向f,p3指向c。图5-10是对应的示意图。
图5-10 赋值操作示意图
说明:
1)对指针变量进行初始化,必须使用变量的地址,而不能使用整型常量或整型变量。如:int*p1=2000;(×)
2)一个指针变量只能指向与其类型相同的变量的地址,否则,可能导致程序异常或结果错误。如:
3)使用指针变量之前,必须对其进行初始化(必须赋初值)。
例如:
由于p1没有指向具体的内存单元,既有可能指向内存的空白区域,也有可能指向正在使用的区域,如果是后者将可能导致不可预料的错误发生。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。