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++后的值是把他自己加过后的值又赋给了他自己的呢??
展开
 我来答
痴情的张无忌
2009-06-06 · TA获得超过532个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:193万
展开全部
Console.WriteLine(m);

这个输出就不用说了吧,直接输出8;

Console.WriteLine(a);
这个呢, 首先a=8; 当执行p=a++的时候, a的值,已经+1了;现在a的值是9了;

Console.WriteLine(p);
这个是先取a的值,输出8;
jht_saber
2009-06-06 · TA获得超过616个赞
知道小有建树答主
回答量:1738
采纳率:0%
帮助的人:691万
展开全部
a++之后a本来的值8赋给了p,但是a自加了1所以是9
m是在自加之前就把本来的值又赋给了m
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aini6699
2009-06-06 · TA获得超过3750个赞
知道小有建树答主
回答量:963
采纳率:100%
帮助的人:258万
展开全部
a是先++后才赋值的,m直接赋值了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Cat_Lee213
2009-06-06 · TA获得超过134个赞
知道答主
回答量:85
采纳率:0%
帮助的人:52.7万
展开全部
m = m++;
为什么要这样呢?
直接m++
不就行了吗?
这个应该是一个不正确或者有歧义的语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式