黑马程序员技术交流社区
标题:
结构体和类者有区别
[打印本页]
作者:
黄新
时间:
2012-12-11 11:45
标题:
结构体和类者有区别
看起来结构体和类有很大相似性。结构体和类都有构造函数和析构函数,结构体和类的成员里都有字段,属性和方法。它们都有哪些不同点呢?
结构是值类型,类是引用类型,这一点我不太理解。值类型是说结构和数字变量,字符变量一样的。比如说:
struct A {} A x=new A(); x1=x; 执行 x1= x这句话的时候 , 是为x1也重新开辟一块内存空间,然后把x内存copy一块给x1吗。如果A是类的话,就是让 x1指向x指向的对象。 是这样的吗?
作者:
马毅
时间:
2012-12-11 15:28
值类型是通过copy值来复制的,而引用类型复制的时候值copy对heap的引用~~
作者:
马毅
时间:
2012-12-11 15:31
例如..a是一个struct ,当把a copy 给 b 的时候,是先在内存中给b开一块空间,然后把a的值copy一份放进去~~
作者:
黑马丁巍
时间:
2012-12-11 15:52
值类型赋值的时候是传递拷贝,比如像int,bool,char等都属于值类型,而普通的对象则是引用类型,赋值的时候是传递引用
struct A {} A x=new A(); x1=x; 你写的不对,声明结构的形式应该为
(访问修饰符)public Struct (结构名)Person
{
定义结构成员 (注意定义的时候+public)
}
Person P1;
后面你的理解是正确的,值类型是复制一份传送过去,对象的引用就是x1指向x指向的对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2