一、值类型变量
直接上代码,代码内见注释
static void Test1()
{
int data1 = 100;
int data2 = data1;//把data1的数据赋值给data2
Console.WriteLine(#34;data1的数据是{data1},data2的数据是{data2}");//结果是:data1的数据是100,data2的数据是100
Console.WriteLine("-------------------");
data2 += 100;
Console.WriteLine(#34;data1的数据是{data1},data2的数据是{data2}");//结果是:data1的数据是100,data2的数据是200
//我们发现data2数值改变了,但是data1数值没有改变,
//是因为他们是两个值类型变量。在新建data2的时候重新开辟了内存空间,将100赋值到了data2里面。
//所以结论就是值类型传递的是变量“副本”,而不是变量本身,变量修改后互相没没有影响。
//***************************
//后期代码越来越复杂,可能不能在一个主程序内写,要分出好几个子程序。
//哪里不明白的地方
//可以Add_VChatId:"jingjianwang888888"
//***************************
}
二、引用类型的变量
直接看代码
static void Test2()
{
int[] data1 = { 1, 2};
Console.WriteLine(#34;data1数组中第一个数据值={data1[0]}, data1数组中第二个数据值={data1[1]}");
Console.WriteLine("------------------------");
int[] data2 = data1;
data2[1] += 3;//仅仅是加了data2中的第2个变量
Console.WriteLine(#34;data1数组中第一个数据值={data1[0]}, data1数组中第二个数据值={data1[1]}");
Console.WriteLine("----------------------");
Console.WriteLine(#34;data2数组中第一个数据值={data2[0]}, data2数组中第二个数据值={data2[1]}");
}
输出结果
data1数组中第一个数据值=1, data1数组中第二个数据值=2
------------------------
data1数组中第一个数据值=1, data1数组中第二个数据值=5
----------------------
data2数组中第一个数据值=1, data2数组中第二个数据值=5
data2[1] += 3;//仅仅是加了data2中的第2个变量;
可是第一个data1[1]也跟着一起变化.
也就是说修改了data2[1]中的值,data[1]值也随着变化
结论:
引用变量传递的是变量本身(引用/地址/指针),新变量没有开辟新空间,他只是指向了引用变量,也就是相当于给原有的变量值提供了一个新的“别名”,新变量改变了值,本质上改变的是“被引用变量”本身的值。
页面更新:2024-05-12
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号