位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 指针的赋值运算

提问人:刘团圆发布时间:2020-12-01

可以将一个变量的地址赋给指针,也可以在指针变量之间相互赋值。

(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。但局部指针不会被自动初始化,因此指向哪里并不确定。建议程序设计人员在程序设计中对于局部指针或初始化或赋空值。


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部