[求助]关于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="<<m<<endl;
输出结果: m=1
同样的语句,为什么结果不同?
----------------解决方案--------------------------------------------------------
语言规范不一样吧
C++不清楚
----------------解决方案--------------------------------------------------------
你把m=m--;都改成m--;看看
----------------解决方案--------------------------------------------------------
语言规范是一样的
改成
m--就是1了
----------------解决方案--------------------------------------------------------
为什么 m=m--;就不行呢?好像也没有语法错误吧?
----------------解决方案--------------------------------------------------------
而且把它改成 m=--m;
又行了,搞不懂
----------------解决方案--------------------------------------------------------
你只要知道那是自减就行了
执行的结果因编译器的不同执行顺序不同的
----------------解决方案--------------------------------------------------------