java中的减,[求助]关于JAVA中自减问题

本文探讨了在Java和C++中使用自减运算符m=m--;时的不同行为。Java中m的值保持为2,而C++中为1,原因在于这两种语言对运算符执行顺序的规定不同。通过实例和解释,揭示了语言规范对这类操作的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[求助]关于JAVA中自减问题

int m=2;

m=m--;

System.out.println(m);

就这个,结果是m=2;不知道为什么m不自减,在VC#.net和VJ#.net里面也是这样,但是在C++和VC++.net中结果却是m=1;

不知道是不是两种语言设定的标准不一样还是其他问题......

搜索更多相关的解决方案:

JAVA

----------------解决方案--------------------------------------------------------

赋值 了..再减..

[此贴子已经被作者于2006-12-31 18:52:57编辑过]

----------------解决方案--------------------------------------------------------

--m就是1了

----------------解决方案--------------------------------------------------------

我是想知道为什么会发生这种情况,为什么JAVA里面m的值是2,而C++等里面的值却是1?

JAVA: int m=2;

m=m--;

System.out.println("m="+m);

输出结果: m=2

C++: int m=2;

m=m--;

cout<

输出结果: m=1

同样的语句,为什么结果不同?

----------------解决方案--------------------------------------------------------

语言规范不一样吧

C++不清楚

----------------解决方案--------------------------------------------------------

你把m=m--;都改成m--;看看

----------------解决方案--------------------------------------------------------

语言规范是一样的

改成

m--就是1了

----------------解决方案--------------------------------------------------------

为什么 m=m--;就不行呢?好像也没有语法错误吧?

----------------解决方案--------------------------------------------------------

而且把它改成 m=--m;

又行了,搞不懂

----------------解决方案--------------------------------------------------------

你只要知道那是自减就行了

执行的结果因编译器的不同执行顺序不同的

----------------解决方案--------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值