一、变量类型复习
1、有符号的整型类型
sbyte、short、int、long
2、无符号的整形变量
byte、ushort、uint、ulong
3、浮点数(小数)
float、double、decimal
4、特殊类型
bool、string、char
5、复杂数据类型
数组、枚举(enum)
————————————————————分割线————————————————————
把以上 学过的 变量类型 分成 值类型和引用类型
引用类型: string, 数组, 类
值类型: 除引用类型外的其它类型、结构体
二、值类型和引用类型的区别
1、使用上的区别
概括:
值类型在相互赋值时,把内容拷贝给了对方,它变我不变
引用类型的相互赋值是让两者指向同一个值(内容),它变我也变
2、为什么有上面那种区别
值类型 和 引用类型 存储在的 内存区域 是不同的 存储方式是不同的
所以就造成了 他们在使用上的区别
值类型存储在 栈空间 —— 系统分配,自动回收,小而快
引用类型 存储在 堆空间 —— 手动申请和释放,大而慢
这种情况其实是开了一个“新房”:
三、特殊的引用类型——string
总的来说,string类型的特殊就特殊在其具备值类型的特征,即“它变我不变”。
补充知识点:
可以通过断点调试以及监视窗口来观察string类型赋值内容在内存里的变化(Shift+7在监视变量名前添加“&”符号用来监视其(监视变量)存放的内存地址——如下图的"&str1")