
C#中的变量赋值问题
intm=8;inta=8;intp=0;m=m++;p=a++;Console.WriteLine(m);Console.WriteLine(a);Console.Wr...
int m = 8;
int a = 8;
int p = 0;
m = m++;
p = a++;
Console.WriteLine(m);
Console.WriteLine(a);
Console.WriteLine(p);
Console.ReadLine();
这个程序运行结果是898,可是为什么m和a的运行结果会不一样呢?m也只有一个内存地址,它在后面也m++了,结果是8,而a也是占的一个内存地址,它a++之后却变成了9呢?
m=m++;的确是先把m的值赋给了他自己,但是他m++后的值到哪去了呢,后面的a++后的值是把他自己加过后的值又赋给了他自己的呢?? 展开
int a = 8;
int p = 0;
m = m++;
p = a++;
Console.WriteLine(m);
Console.WriteLine(a);
Console.WriteLine(p);
Console.ReadLine();
这个程序运行结果是898,可是为什么m和a的运行结果会不一样呢?m也只有一个内存地址,它在后面也m++了,结果是8,而a也是占的一个内存地址,它a++之后却变成了9呢?
m=m++;的确是先把m的值赋给了他自己,但是他m++后的值到哪去了呢,后面的a++后的值是把他自己加过后的值又赋给了他自己的呢?? 展开
展开全部
Console.WriteLine(m);
这个输出就不用说了吧,直接输出8;
Console.WriteLine(a);
这个呢, 首先a=8; 当执行p=a++的时候, a的值,已经+1了;现在a的值是9了;
Console.WriteLine(p);
这个是先取a的值,输出8;
这个输出就不用说了吧,直接输出8;
Console.WriteLine(a);
这个呢, 首先a=8; 当执行p=a++的时候, a的值,已经+1了;现在a的值是9了;
Console.WriteLine(p);
这个是先取a的值,输出8;
展开全部
a++之后a本来的值8赋给了p,但是a自加了1所以是9
m是在自加之前就把本来的值又赋给了m
m是在自加之前就把本来的值又赋给了m
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a是先++后才赋值的,m直接赋值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m = m++;
为什么要这样呢?
直接m++
不就行了吗?
这个应该是一个不正确或者有歧义的语句。
为什么要这样呢?
直接m++
不就行了吗?
这个应该是一个不正确或者有歧义的语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询