这段代码中,bank的内存分配是怎么样的?同时声明两个bank为什么又是错的?然后,在for语句后,我又怎么样才能区别这5个bank,还是它已经被垃圾回收了?
2 回答
RISEBY
TA贡献1856条经验 获得超5个赞
每一次调用new关键字,比如下面的代码
Bank bank = new Bank(2001010, "kulong", "2006.05.1", "43011119870914", 5000);
此时在系统的堆(Heap)上,分配了一段空间,用于存放一个Bank对象的内容
随后在系统的栈(Stack)上,分配了一个指针,指向堆上分配的Bank对象
不能同时声明2个Bank是因为C#的语法不允许在一个域中有同名的变量,因此第2次声明应该去掉类型说明,代码可以如下
Bank bank = new Bank(xxx);
bank = new Bank(xxx); //这里不需要类型说明
在for循环后,所有的Bank都出了作用域,因此无法取值,也就没有区别的概念了
- 2 回答
- 0 关注
- 474 浏览
添加回答
举报
0/150
提交
取消