码迷,mamicode.com
首页 > Windows程序 > 详细

C#基础知识----值类型与引用类型

时间:2016-06-05 12:27:55      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

CLR支持两种基本类型:值类型引用类型

 

那么又有哪些数据类型是值类型的   又有哪些数据类型是引用类型的呢?请看下面的简单归纳:

值类型:

           所有的数值类型(long int short byte ulong uint ushort sbyte decimal double float)

           bool

           枚举(enum)

           结构(struct)

 

引用类型:

           string 

           数组

            类(class)

            接口(interface)

引用类型和值类型的划分依据:  他们在内存中的存储方式不同      内存最重要的两部分  一部分是栈空间   一部分是堆空间      值类型的变量是存储在栈空间中  而引用类型的变量是将值存储在堆空间中

   下面我们来看看值类型和引用类型在内存中是如何存储数据的

技术分享

  上面是值类型和引用类型存储的示例图        

可以看见值类型的变量  是将值和变量直接存储在栈空间的   而引用类型的变量是将变量存储在栈空间  却降值存储的堆空间中  引用变量在栈空间内存储的是 其值的地址而已   

  关于变量分赋值  

值类型的变量赋值: 重新开辟一块栈空间   将值直接复制一份过去  

引用类型的变脸赋值: 在栈空间重新开辟一个空间   将原有的值所在的地址 存放在新的引用变量中保存起来

 

C#基础知识----值类型与引用类型

标签:

原文地址:http://www.cnblogs.com/soaeon/p/5560399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!