糊涂咖啡豆

文章
5
资源
0
加入时间
2年10月17天

C++、Java和Matlab不同语言关于 y=(++x)+(++x);结果不同的问题

设x的值为3,y=0,则表达式y=(++x)+(++x)后,y的值是( ),不同编译器会有不一样的答案。先写结果:C++: y=10;java: y=9;matlab: y=6;为什么会有这样的结果呢,到底哪个是对的?其实没有对错之分。原因是各编译器处理式子的方式不一样,这个在编译原理中我们学过。就是所谓的前缀表达式,中缀表达式,后缀表达式。什么意思呢?拿刚才的例子来说