A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄新 中级黑马   /  2012-12-11 11:45  /  1340 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  看起来结构体和类有很大相似性。结构体和类都有构造函数和析构函数,结构体和类的成员里都有字段,属性和方法。它们都有哪些不同点呢?
  结构是值类型,类是引用类型,这一点我不太理解。值类型是说结构和数字变量,字符变量一样的。比如说:
struct A {}     A   x=new A();    x1=x;  执行 x1= x这句话的时候 , 是为x1也重新开辟一块内存空间,然后把x内存copy一块给x1吗。如果A是类的话,就是让 x1指向x指向的对象。 是这样的吗?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

倒序浏览
值类型是通过copy值来复制的,而引用类型复制的时候值copy对heap的引用~~
回复 使用道具 举报
例如..a是一个struct ,当把a  copy 给 b 的时候,是先在内存中给b开一块空间,然后把a的值copy一份放进去~~

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
值类型赋值的时候是传递拷贝,比如像int,bool,char等都属于值类型,而普通的对象则是引用类型,赋值的时候是传递引用
struct A {}     A   x=new A();    x1=x; 你写的不对,声明结构的形式应该为  
(访问修饰符)public Struct (结构名)Person  
{
定义结构成员  (注意定义的时候+public)
}
Person P1;
后面你的理解是正确的,值类型是复制一份传送过去,对象的引用就是x1指向x指向的对象

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马