c# 中变量多次赋值后值的变化问题
假如我有三个变量inta,b,c;现在我设定a=1;b=a;c=b;正常情况下a,b,c都为1.可是如果,我在后面的语句中改变了a的值,a=2;那么b和c的值也会更改么?...
假如我有三个变量
int a,b,c;
现在我设定
a = 1;
b= a;
c=b;
正常情况下 a,b,c 都为1.
可是如果,我在后面的语句中改变了a的值,
a=2;
那么b和c的值也会更改么? 展开
int a,b,c;
现在我设定
a = 1;
b= a;
c=b;
正常情况下 a,b,c 都为1.
可是如果,我在后面的语句中改变了a的值,
a=2;
那么b和c的值也会更改么? 展开
2个回答
展开全部
不会变,b和c的值还是1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会。int类型不是引用类型的。
追问
那如果
object a,b,c;
a = new object(){Name = "1"};
b =a;
c=b;
a.Name = "2";
这个时候 b.name = ??
追答
类是引用类型,new object在堆里边开辟了存储空间,b,a,c在栈里,而b,a,c指向堆里边的同一存储空间,改变一个其他即可改变,类似数组也是引用类型。数组进行操作时无需返回。而值类型却不可以。
int a=10;
int b=20
swap(a,b)
void swap(int a,int b)
{
int temp=a;
a=b;
b=a;
}
a,b的值是不会交换的。但对于数组,数组是引用类型,改变值后无需返回原值已改变。
int[]nums=new nums[]{6,5,4,3,2,1};
sort(nums);
void sort(int[] nums)
{
//执行任何改变nums的操作
}
此时可以输出nums看看,值已经改变。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询