C语言 指针的赋值运算
可以将一个变量的地址赋给指针,也可以在指针变量之间相互赋值。
(1)将变量的地址赋给指针
将变量的地址赋给指针,例如:
float x;
float px, py;
px=&x;
py=&x;
上述定义语句定义了一个float型变量X,又定义了两个float型指针px、py,之后将变量x的地址赋给指针px、py,即px、py中存放的都是变量x的地址。
(2)将一个指针的值赋给另一个指针
相同类型的指针之间是可以相互赋值的,例如:
int a;
int p=&a,q;
q=p;
指针p指向a,当使用赋值语句q=p,将指针p的值赋给q时,q中存储的也是变量a的地址,所以,p、q都指向a。
(3)对指针赋空值
在定义指针时,如果没有给指针赋值,指针就是悬空指针。悬空指针是不安全的,如果程序设计人员不想给变量初始化,可以给变量赋空值,说明指针不指向任何单元。
空值用NULL表示。NULL是一个常量,在stdio.h头文件中定义,使用形式为:
p=NULL;
也可以直接为指针变量赋值0,其形式为:
p=0;
或
p='\0';
为指针赋空值NULL (或0 )并不是将指针P指向0地址单元,而是明确表明指针P不指向任何地址空间。
和普通变量一样,指针也有全局指针和局部指针,同样也有局部静态指针。对于全局指针和局部静态指针,如果没有初始化,系统自动为其赋值0。但局部指针不会被自动初始化,因此指向哪里并不确定。建议程序设计人员在程序设计中对于局部指针或初始化或赋空值。
点击加载更多评论>>