您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言间接引用(indirection)是什么

时间:12-30来源:作者:点击数:

对已说明的变量来说,变量名就是对变量值的直接引用。对指向变量或内存中的任何对象的指针来说,指针就是对对象值的间接引用。如果p是一个指针,p的值就是其对象的地址;*p表示“使间接引用运算符作用于p”,*p的值就是p所指向的对象的值。

*p是一个左值,和变量一样,只要在*p的右边加上赋值运算符,就可改变*p的值。如果p是一个指向常量的指针,*p就是一个不能修改的左值,即它不能被放到赋值运算符的左边,请看下例:

例 7.1 一个间接引用的例子

#include <stdio.h>
int main()
{
    int i;
    int  * p ;
    i = 5;
    p = & i;         /*  now  * p = = i  */
    /*   %Pis described in FAQ VII. 28 */
    printf("i=%d, p=%P,   * p= %d\n" , i, P,  *p); 
    * p = 6;        /*  same as i = 6  */
    printf("i=%d, p=%P,   * p= %d\n" , i, P,  *P);
    return 0;       /*  see FAQ XVI. 4  */ 
}

上例说明,如果p是一个指向变量i的指针,那么在i能出现的任何一个地方,你都可以用*p代替i。在上例中,使p指向i(p=&i)后,打印i或*p的结果是相同的;你甚至可以给*p赋值,其结果就象你给i赋值一样。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门