您好、欢迎来到现金彩票网!
当前位置:盛世彩票 > 复合语句 >

java c++ 复合赋值语句为什么不一样的结果

发布时间:2019-07-12 21:28 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部兄弟听一声劝,别被中国的垃圾“程序入门书”误导了,什么狗屁题,扔一边算了。

  关注这些细节根本没有意义,因为这与语法的定义有关,其实就是结合性的问题。java是左结合的,执行到“ a+= ”的时候a还是10。但是c++是右结合的,它会先算a-=(b+2),a先变成了-12,然后执行a += (-12),结果就是-24了。但不同的c++编译器可能结果还不一样,结论就是不要写这样的代码!

  你要真想了解细节,本质上就是程序的syntax tree结构不一样。。。去拿本编译原理的书看看吧,那才是程序设计的精髓,而这些古怪语法就是糟粕

  哎,你这个属于非常糟糕的编程,不要试图写看似非常高级的代码,其实你这个代码垃圾得要命(恕我直言), 连续=(赋值)在编译器下执行顺序是不一样的,就像C++的cout语句,如果cout(a++)(a++)(a++)endl;你猜第一个 第二个....a是什么结果,结果就是很难预料,因为执行顺序不是由你说了算. 请分开写. 如 couta++; couta++; .......(不啰嗦了)同学,这是一道题,不是我天马行空想出来的。第二种情况下,a的值也是固定的,不会变,。什么叫很难预料。我能预测结果,我只想了解具体内存分配的过程同学,我说C++很难预料(其实在这里都只是i++也能预料,就是从右往左执行顺序,如果你在连续的中间穿插函数调用逗号表达式等,你要是能给我预料我说你碉堡了),你有没有看到我写的cout然后说难预料,还有你要用不同的编译器测试,如果你只用一个编译器测试我说的C++代码我就懒得给你争论了. 你不信自己测试,我懒得说. 一般的表达式都是从右往左执行的(相同优先级) Java里+= 及+优先级自己看Java API 告诉你赋值语句优先级肯定较低 你自己看看计算机组成原理和编译原理

http://coolscala.com/fuheyuju/602.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有