首页 新闻 会员 周边

c和java ++问题

0
悬赏园豆:30 [已解决问题] 解决于 2015-08-09 14:04
int a=1;

a=a++;

输出a的值c语言是3,java是2,为什么!

问题补充:

补上c语言的反汇编代码。C语言我是懂的,然而JAVAa的结果是2,JDK方面的原因

TinDin的主页 TinDin | 初学一级 | 园豆:126
提问于:2015-08-06 21:44
< >
分享
最佳答案
0

个人猜测是编译器的问题,代码虽然相同但是编译器编译成汇编代码后器运行机制就会改变,相同的语言写的相同的代码(自加代码)在不同的编译器上运行也会出现不同的结果(当然也有可能是语言问题),我遇见过都是C++的代码,在不同编译器上出现不同结果。

收获园豆:20
blue顺子 | 初学一级 |园豆:189 | 2015-08-07 09:52

对,主要就想弄清楚编译器的这方面知识。这个问题主要是JDK引起的

TinDin | 园豆:126 (初学一级) | 2015-08-07 17:08
其他回答(4)
0

就这点代码怎么看

MrNice | 园豆:3450 (老鸟四级) | 2015-08-07 08:27

我也就问了关于这点代码的事啊

支持(0) 反对(0) TinDin | 园豆:126 (初学一级) | 2015-08-07 17:06
0

输出的代码都没有 

吴瑞祥 | 园豆:29449 (高人七级) | 2015-08-07 08:55

= =。输出a喽。。。

支持(0) 反对(0) TinDin | 园豆:126 (初学一级) | 2015-08-07 17:06
0

++ --这个和编译器有关,这个不定的。

学C语言的时候就说过了。不要去死扣这个。

收获园豆:10
gw2010 | 园豆:1487 (小虾三级) | 2015-08-07 11:55

是的,java jdk的坑

支持(0) 反对(0) TinDin | 园豆:126 (初学一级) | 2015-08-07 17:07
0

你还在纠结这类问题

不知道风往哪儿吹 | 园豆:2035 (老鸟四级) | 2015-08-07 18:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册