About 值传递 与 地址传递
2010-04-10 09:04
239 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Hello { class Class1 { public int value = 0; } struct Struct1 { public int value; } class Test { static void Main() { int val1 = 0; int val2 = val1; val2 = 2; Console.WriteLine("Values:{0},{1}", val1, val2); Class1 c1 = new Class1(); Class1 c2 = new Class1(); c1.value = 4; c2 = c1; c1.value = 5; Console.WriteLine("{0},{1}", c1.value, c2.value); Struct1 s1; s1.value = 0; Struct1 s2 = s1; s2.value = 1; Console.WriteLine("{0},{1}", s1.value, s2.value); } } }
val1、val2两个局部变量都是值类型(int),并且值类型的每个局部变量都有自己的存储,所以赋值不会互相改变;
相反,赋值c1.value=5;则会影响c1和c2都引用的对象;
结构类型也是值类型,所以s2的修改不会影响s1;
值类型都无需new空间,声明变量时系统自动分配空间
相关文章推荐
- 指针,值传递和地址传递,
- <C语言>函数的值传递与地址传递--以输入三个数并从小到大排列为例
- 值传递,地址传递与引用传递
- 值传递与地址传递的区别
- 值传递,地址传递,引用传递
- 值传递与地址传递
- 值传递还是地址传递
- Java中, 不存在引用传递(也就是地址传递)一说, 全部都是值传递
- 关于java方法参数是值传递还是地址传递。
- 简述什么是值传递,什么是地址传递,两者区别是什么
- C 值传递与地址传递图解
- Java基础-值传递与地址传递
- 关于分析函数参数传递是值传递还是地址传递
- java 值传递及地址传递(引用传递)
- (六)指针的应用---址传递(实则为地址的值传递)
- 值传递/地址传递/引用传递的区别【转】
- java 值传递与地址传递(引用)的区别
- 值传递和地址传递
- 值传递,地址传递与引用传递
- 值传递、地址传递、引用传递(参考网上各种资料总结哦~)