社区
C#
帖子详情
菜鸟问题 值类型和引用类型的定义和区别
863922230
2009-01-05 09:50:11
值类型和引用类型的定义和区别
...全文
1691
10
打赏
收藏
菜鸟问题 值类型和引用类型的定义和区别
值类型和引用类型的定义和区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vrhero
2009-01-05
打赏
举报
回复
1楼最好去看看什么是堆(Heap)什么是堆栈(Stack)...别搞个单元出来忽悠lz...
zlb789
2009-01-05
打赏
举报
回复
up
glt3260053
2009-01-05
打赏
举报
回复
WWW.GOOGLE.COM自己搜索吧!上边有好多!
能自己找的最好别提问
HDNGO
2009-01-05
打赏
举报
回复
一个是现金,一个是存折。。。。
vrhero
2009-01-05
打赏
举报
回复
这种问题你该去看MSDN...详尽而且没有歧义...
david_anwei
2009-01-05
打赏
举报
回复
值类型:
单元直接存放“有效值”
如:
int a=3;
则a内存单元就放的是3
引用类型:
单元放的是另外一个对象的引用(地址)
如:
Form form1=new Form();
就是说,在内存中开辟了一个对象new Form(),form1内存单元存放的是那个对象的地址,并非对象本身
wuyq11
2009-01-05
打赏
举报
回复
结构体和枚举类型属于值类型,其余都为引用类型。
引用类型存储在托管堆上,同时需要存储额外的信息,受GC的控制。
值类型存储在线程栈中,不受GC控制,出了作用域,自动释放。
值类型的赋值和传递,需要进行字段的复制和存储,而引用类型只传递指针。
通常在作为参数传递和作为返回值传递时,如果数据过大,不易用值类型。
http://www.cnblogs.com/freewl/archive/2008/10/19/1314610.html
hechenqingtian
2009-01-05
打赏
举报
回复
.NET将数据类型分为值类型(value type)和引用类型(reference type)
一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。值类型的数据具有较快的存取速度。
一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。
值类型
(1)这个类型分配在哪里? 分配在栈上
(2)变量是怎么表示的? 值类型变量是局部复制
(3)基类型是什么? 必须继承自System.ValueType
(4)这个类型能作为其他类型的基类吗? 不能。值类型是密封的,不能被继承
(5)默认的参数传递是什么? 变量是按值传递的(也就是,一个变量的副本被传入被调用的函数)
(6)这个类型能重写System.Object.Finalize()吗 不能。值类型不好放在堆上,因此不需要被终结。
(7)我可以为这个类型定义构造函数吗? 是的,但是默认的构造函数被保留(也就是自定义构造函数必须全部带有参数)
(8)这个类型的变量什么时候消亡? 当它们越出定义的作用域时
引 用 类 型
(1)这个类型分配在哪里?
分配在托管堆上
(2)变量是怎么表示的?
引用类型变量指向被分配得实例所占的内存
(3)基类型是什么?
可以继承自除了System.ValueType以外的任何类型,只要那个类型不是sealed的
(4)这个类型能作为其他类型的基类吗?
是的。如果这个类型不是密封的,它可以作为其他类型的基类
(5)默认的参数传递是什么?
变量是按引用传递(例如,变量的地址传入被调用的函数)
(6)这个类型能重写System.Object.Finalize()吗
可以间接地重写
(7)我可以为这个类型定义构造函数吗?
当然!
(8)这个类型的变量什么时候消亡?
当托管堆被垃圾回收时。
Smart
2009-01-05
打赏
举报
回复
值类型
int i=100;
int j=i;
j和i在内存中分配不同的空间,j中存的也是值
引用数据类型
string s1="hello";
string s2=s1;
s2存的是s1在内存中的地址而非值
sunbin19840405
2009-01-05
打赏
举报
回复
值:栈中存放具体值。如:数值型
引用:堆中,存放地址 如:数组,对象。
Java学习记录之数据
类型
——基本数据
类型
和引用数据
类型
为了确保转换的准确性和安全性,应理解隐含强制
类型
转换的规则,并谨慎处理数据
类型
的转换。在Java中,隐含强制
类型
转换(Implicit Type Casting)是指将一个数据
类型
自动转换为另一个数据
类型
的过程,而无需显式的
类型
转换操作。必须满足转换前的数据
类型
的位数要低于转换后的数据
类型
,例如: short数据
类型
的位数为16位,就可以自动转换位数为32的int
类型
,同样float数据
类型
的位数为32,可以自动转换为64位的double
类型
。通过
定义
类和使用引用数据
类型
,可以描述和操作对象的属性和行为。
指针和引用的
区别
一、指针和引用的
定义
和性质
区别
(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元,即指针是一个实体;而引用跟原来的变量实质上是一个东西,只不过是原变量的一个别名而已。如: int a = 1; int *p = &a; int a = 1; int &b = a; 上面
定义
了一个整型变量和一个指针变量p,该指针变量指向a的存储单元,即p的
值
是a存储单元的地址。 而下面2句
定义
了一个整型变量a和这个整型a的引用b,事实上a和b是同一个东西,在内存占有同一个存
微信小程序项目遇见
问题
二:变量作用域(续)| 使用data中的数组赋
值
给变量b,改变b的
值
,数组改变的解决方法| js基本
类型
和
引用
类型
的
区别
| 变量命名冲突
一、page外的数据和for循环的循环变量同名 二、for循环外的变量和循环变量同名 三、for循环操作for循环外的变量自加 i++ +1 ++i 总结: 四、for循环操作data中的数组 解决方法: js基本
类型
和
引用
类型
的
区别
1、基本
类型
: 2.
引用
类型
1.
引用
类型
的
值
是可变的 2.
引用
类型
的比较是引用的比较 3.
引用
类型
的
值
是同时保存在栈内存和堆内存中的对象 五、for循环操作data中的对象
C# 中的
值
类型
与
引用
类型
:内存大小解析
C# 中的
值
类型
与
引用
类型
:内存大小解析
C#
菜鸟
之旅------
值
类型
,
引用
类型
昨天在学习设计模式的时候,遇到了“原型模式”,在这个模型中有一个很关键的点就是: 传
值
和传址。针对这个
问题
我们小组又重新回到小杨视频中去学习了一番,貌似很清晰,但是回到设计模式之后每个人的意见也是大不相同。 所以针对
值
类型
和
引用
类型
这个
问题
,我展开了一系列的学习。下面是我的一些收获,分享给大家。 在C#中的
类型
分为俩种:
值
类型
和址
类型
...
C#
111,130
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章