美文网首页C
指向同一地址的指针间的关系

指向同一地址的指针间的关系

作者: SnC_ | 来源:发表于2019-06-11 17:19 被阅读0次

    这是一个懂的人觉得简单,但是不清楚的话很容易引发错误的知识点。

    先说结论:指针自身的内容互相无关。但指针指向的内容,指针间共用。

    测试例子1:
    typedef struct LinkNode{
        int data;
        struct LinkNode *next;
    }Node;
    
    int main (void){
        Node *a = (Node*)malloc(sizeof(Node));
        Node *b = (Node*)malloc(sizeof(Node));
        Node *c = (Node*)malloc(sizeof(Node));
        Node *i = a;
    
        a->data = 1;
        b->data = 2;
        c->data = 3;
        a->next = b;
        i->next = c;
        printf("%d",a->next->data); //output : 3
        return 0;
    }
    

    指针a和i都指向同一结构体。结构体最终的next指向c,所以输出为3。

    测试例子2
    typedef struct LinkNode{
        int data;
        struct LinkNode *next;
    }Node;
    
    int main (void){
        Node *a = (Node*)malloc(sizeof(Node));
        Node *i = a;
    
        a->data = 1;
        a = NULL;
        printf("%d",i->data); //Output : 1
        return 0;
    }
    

    a与i的内容互相无关。

    相关文章

      网友评论

        本文标题:指向同一地址的指针间的关系

        本文链接:https://www.haomeiwen.com/subject/avzqfctx.html