c#中没有指针,但链表中有tail=newnode之类的语句,怎么理解?

为什么tail=newnode就是让tail引用newnode,而不是将newnode的值赋给tail?... 为什么tail=newnode就是让tail引用newnode,而不是将newnode的值赋给tail? 展开
 我来答
freeeeeewind
2013-10-21 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1300万
展开全部

如下图所示:

1)如图上半部分所示 newnode = new 节点对象() , newnode的值是引用到对象;而不是对象本身;

2)如图上半部分所示 tail = newnode,是让tail也引用到同一个对象;

追问
恩,懂了
前行
2013-10-21 · 职员
前行
职员
采纳数:124 获赞数:303
国家计算机技能大赛三等奖

向TA提问 私信TA
展开全部

tail=newnode 还是 tail=new node()?

要建立链表  比如要建立一个a类的类表

class a { 
 int t1; 
 a tail;
}

这样在赋值的时候 比如  main函数里

 a obj1=new a();

 obj1.t1=1;

 a obj2 = new a();

 obj2 .t1 = 2;

 obj1.tail=obj2 ;

这样就可以将obj2链接到obj1后

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刷新①丅5e6
2013-10-21 · TA获得超过4333个赞
知道大有可为答主
回答量:1499
采纳率:64%
帮助的人:581万
展开全部
class Program
    {
        class MyListNode
        {
            private int m_value;
            private MyListNode next;

            public MyListNode(int value, MyListNode node) 
            {
                m_value = value;
                next = node;
            }

            public int Value
            {
                get { return m_value; }
                set { m_value = value; }
            }

            public MyListNode Next
            {
                get { return next; }
                set { next = value; }
            }


        }

        static void Main(string[] args)
        {
            MyListNode node1 = new MyListNode(1, null);
            MyListNode node2 = new MyListNode(2, null);
            node1.Next = node2;

            Console.WriteLine(node1.Value.ToString() + "|" + node1.Next.Value.ToString());

            node2.Value = 3;

            Console.WriteLine(node1.Value.ToString() + "|" + node1.Next.Value.ToString());

            Console.ReadKey();
        }  
    }
    
    /*你的理解是对的
    粗糙地模仿了一个链表,你可以看到输出结果是
    1|2
    1|3
    改变node2就是改变node1.Next
    C#摒弃了指针,在C++中很多用到指针的地方,C#都用引用代替了
    比如:C++ new操作返回的是指向对象的指针,而C#返回的直接就是对象的引用
    */
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yw187142046
2013-10-21 · TA获得超过222个赞
知道小有建树答主
回答量:552
采纳率:100%
帮助的人:430万
展开全部
这个相当于对象的引用,也就相当于将地址赋值给等号右边的变量了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式