标签:
内存中主要分为两块空间: 栈空间和堆空间。他们都是用来存储数据的。不同类型的数据存储在不同的地方.
一、值类型和引用类型划分依据:他们在内存中存储的结构不同.。
二、值类型:所有的数值类型、char、bool、枚举、结构
引用类型:string 数组 类
三、局部变量及成员变量:
3.1、局部变量:
相同点: 无论局部变量是值类型的还是引用类型的,那么这个局部变量始终是开辟在栈空间中的.
不同点: 值类型变量的真实的值,直接存储在栈空间中的变量中.
引用类型的变量,对象是存储在堆空间中的,栈空间中的变量中存储的是对象在堆空间中的地址.
3.2、成员变量:
成员变量除于对象。无论这个成员变量是值类型的还是引用类型,都跟着对象一起开辟在堆空间中。这个成员变量存储值的原理和局部变量一样。
四、变量之间相互赋值的效果
无论是什么类型的变量之间相互赋值。将源变量中的值拷贝一份,将这个副本赋值给目标变量。
不同点在于:
值类型:因为值类型的变量中存储的是真实的值,所以拷贝传递的也是真实的值。赋值完成以后,对一个变量的修改不会影响另外的1个变量的值。
引用类型:因为引用类型的变量中存储的是对象的地址,所以拷贝传递的也是地址。赋值完毕以后,两个变量指向了同一个对象。对1个变量进行修改对另外的变量有影响。
值类型和引用类型
标签:
原文地址:http://www.cnblogs.com/huanhuan0624/p/4713532.html