游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1781|回复: 1

链表问题

[复制链接]

15

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2008-11-24 23:30:00 | 显示全部楼层 |阅读模式
        Node** pp = &head;
        Node* p = *pp;
       
        pp = &p->Next;
        p = *pp;

        *pp = p->Next;


        cout<<head->Next<<endl;
        cout<<*pp;

这里面的head代表链表的头.
请问一下为什么两个结果会是一个地址

0

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-12-25 01:10:00 | 显示全部楼层

Re:链表问题

原因是链表的结构被改变了。

Node** pp = &head;
Node* p = *pp; //此时p和*pp都是head

pp = &p->Next;//注意这里pp指向的是head->Next,具体说是pp指向了head中的Next字段
               (如果只把pp理解成第一个结点的地址的地址,就容易犯错误)
p = *pp;//p指向了第一个结点

*pp = p->Next; //*pp指向了第二个结点,也就是head中的Next也指向了第二个结点,所以二者相等

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 15:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表