我写了一段程序如下:
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello,World");
Student x = new Student(1);
Student y = new Student(2); Console.WriteLine(x.i);
Console.WriteLine(y.i); y = x; Console.WriteLine(x.i);
Console.WriteLine(y.i); x.i = 5;
y.i = 10; Console.WriteLine(x.i);
Console.WriteLine(y.i); }
}
class Student
{
public int i;
public Student(int i)
{
this.i = i;
}
}请问:
1.最终打印的结果是什么样的?
2.用new 对类实例化是否分配给如上的x,y各自的内存空间?
3.里边的语句:
y = x;
是传值赋值给实例y,还是把实例y的地址指向实例x的地址?
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello,World");
Student x = new Student(1);
Student y = new Student(2); Console.WriteLine(x.i);
Console.WriteLine(y.i); y = x; Console.WriteLine(x.i);
Console.WriteLine(y.i); x.i = 5;
y.i = 10; Console.WriteLine(x.i);
Console.WriteLine(y.i); }
}
class Student
{
public int i;
public Student(int i)
{
this.i = i;
}
}请问:
1.最终打印的结果是什么样的?
2.用new 对类实例化是否分配给如上的x,y各自的内存空间?
3.里边的语句:
y = x;
是传值赋值给实例y,还是把实例y的地址指向实例x的地址?
解决方案 »
- dataGridView的问题,请帮忙解决,谢谢
- 询问一个关于数组的问题
- 求一个画地球和卫星位置的作图方法
- 200高分请 思归、孟子 等 MVP 专家解答 .Net + COM+ 使用分布式方案出现无法解决的实际问题
- 如何在代码中启动应用程序?
- java转换c#时候的一个小问题,在线等,谢谢各位了。。。。感激各位了
- 如何用DATAGRID在WinForm编程中实现这样的效果,急.
- 为什么安装VSS6后,..\VSS下没有NETSETUP.EXE这个文件
- 关于Singleton的讨论
- 新建一个web application 报错
- 获取命令行输入是什么?
- 这两个连接字符串有什么区别吗 我觉得都对但是其中一个却通不过 什么原因呢
Hello,World
1
2
1
1
10
102 是
3 此时x和y是同一个实例
2
1
1
10
10
NEW 分配了内存空间
但因为你的Student 声明为class
所以,当y=x时,y放弃了原来指向的内存地址,改为指向x的内存地址