c#中没有指针,但链表中有tail=newnode之类的语句,怎么理解?
为什么tail=newnode就是让tail引用newnode,而不是将newnode的值赋给tail?...
为什么tail=newnode就是让tail引用newnode,而不是将newnode的值赋给tail?
展开
4个回答
展开全部
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后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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#返回的直接就是对象的引用
*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个相当于对象的引用,也就相当于将地址赋值给等号右边的变量了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询