优先级-int x=4;求x+=x-=x-x--的值

问题描述

int x=4;求x+=x-=x-x--的值

int x=4;求x+=x-=x-x--的值,为什么先计算x-=x-x,--的优先级不是比赋值运算符的优先级高吗?

解决方案

x+=x-=x-x--;
01052D35 mov eax,dword ptr [x]

01052D38 sub eax,dword ptr [x]

01052D3B mov ecx,dword ptr [x]

01052D3E sub ecx,eax

01052D40 mov dword ptr [x],ecx

01052D43 mov edx,dword ptr [x]

01052D46 add edx,dword ptr [x]

01052D49 mov dword ptr [x],edx

01052D4C mov eax,dword ptr [x]

01052D4F sub eax,1

01052D52 mov dword ptr [x],eax

解决方案二:

--这里是在后面,优先级低,要先运算完,才会执行,前-- 会提前执行,但是这个取决于编译器,有的编译器对各类的--,++啊,处理不一样

解决方案三:

定义函数 求sinh(x)的值。

解决方案四:

如果是c/c++
这种问题的标准答案是结果未定义。
因为不同厂家的编译器对这个问题的理解是不一样的,中间还有个编译器优化的问题。

但是如果是java的话,是解释执行的话,只要语法通过了,那么凭本人的经验,答案是唯一的,但是java是怎么理解的,天知道!

解决方案五:

应该是先算x--,x=3,然后x-x--,是-1,然后x-=-1,x=4,x-=-1表达式的值是3,就是x+=3,x=7,x+=3表达式的值是4,所以最后表达式的值是4

解决方案六:

--的前后貌似优先级不一样

解决方案七:

x+=x-=x-x-- (x--)最后执行
x-- =4 ,x =3;
x-x-- = -1;
x-=-1,x=3;-->x=x--1--->x=4;
x+=4,x=4--->x=8

解决方案八:

我很好奇为啥会有人想出这么刁钻的优先级问题?实际使用中可以加括号的

时间: 2025-01-01 03:03:46

优先级-int x=4;求x+=x-=x-x--的值的相关文章

算法研究:已知不重复的int集合,求最长递增子序列

问题背景:最近换工作面试,面试官问了一道编程题,大体是已知不重复的int集合,求最长递增子集合,这个集合可以不是连续的,但顺序呢不能乱. 比如说:{2, 7, 3, 13, 6, 8}里最长递增子集合的就是{2,3,6,8}. 这道题感觉很有意思,于是回家就用代码实现了一遍. 主要代码: package com.galaxy.fym.algorithm.maxsublist; import org.apache.commons.collections.CollectionUtils; impor

急急急-跪求,javaweb,jsp,间接读值,

问题描述 跪求,javaweb,jsp,间接读值, 有什么方法可以从在计算价时,键入数据表中的编号列,得到是价钱列的值,(编号与价钱在同一行) 解决方案 从界面上扫数据这个做法会让你后面苦不堪言. 建议你理解下mvc或者mvvm思想. 把数据都放在model里,或者viewmodel里. 当界面上的显示的数据变化时,跟踪这个变化,并更新你的model, 然后再你的model里进行数据处理,并反馈给界面. 解决方案二: 你的这个场景,具体的做法: 在你的服务端,java类中,序列化你的类为json

求C#代码的datetime.now值加密成6位,可逆反解

问题描述 求C#代码的datetime.now值加密成6位,可逆反解 解决方案 解决方案二:没任何要求,那我年月日换算成二个长度?然后时分秒毫秒换算成4个长度?解决方案三:datetime.now要包括什么内容?年月日?还是要再包括时分秒?还是要再包括毫秒?加密要多复杂?一个很简单的方式,只到秒的:用datetime.now去减2000/01/0100:00:00,算出秒数,再转换成36进制,基本上能保证在6位之内(最大日期是2068-01-19).得到的字符串,可以再次加密.解决方案四:任何对

数据库的关系理论-求本数据组的权值和四位分差关系

问题描述 求本数据组的权值和四位分差关系 图中,黄色横条部分代表的是及时成交价的平均价格, 绿色横条代表空方,也是上盘方, 红色为多方,也为下盘方: 红黄之间跳空的白色部分横向是每分钟的成交量列向是成交价,是跳空的部分:尾部数字代表其价格权重: 现在数据如下 总盘市场的趋势图为W 图,然后其中A. B. C 代表其三种成交价的市场交易对比图: 以盈亏平衡点的最优组合投资方式来解这组数据的盈亏最优方: .数据代表值,为最低价,25分位价,中庸价,75分位价,最高价 主盘市场平均值:其市场平均成交价

php问题求帮助,以下函数返回值为何一直是100?

问题描述 php问题求帮助,以下函数返回值为何一直是100? $qc_q1=$_POST['q1']; $qc_q2=$_POST['q2']; $qc_q3=$_POST['q3']; $qc_q4=$_POST['q4']; $qc_q5=$_POST['q5']; $qc_q6=$_POST['q6']; $qc_q7=$_POST['q7']; $qc_q8=$_POST['q8']; $qc_q9=$_POST['q9']; $qc_q10=$_POST['q10']; $qc_Cho

java求字符串型逻辑表达式的bool值

  这是最近在项目中的一个需求,已知a=3,求字符串"a<=2"的值,也就是应该返回false.这个问题可大可小,就我们的应用场景也就是用来让用户自定义变量区间,比如类似下面这样的规则: a<=2    返回积分系数1.0 2<a<=5  返回积分系数1.1 a>5     返回积分系数1.2     如果用switch写死在代码中,以后要修改规则实在是很麻烦的事情,用户也希望能自己维护这样些区间值.于是我想就让用户自己输入这样的表达式和变量的值保存在数据

用python求第1000个质数的值

今天在群里有网友提问: 用python求从0开始第1000个质数? 其实算法本身不难,求质数要从质数的定义下手. 质数:只能被0和它本身整除的数.那好,我们开始写程序(一个小算法). #coding=utf-8 #定义求质数的函数 def getprim(n): #我们从3开始,提升效率,呵呵,微乎其微啦 p=3 x=0 while(x<n): result=True for i in range(2,p-1): if(p%i==0): result=False if result==True:

求答疑:键“data source”值的长度超出了“128”的限制。???

问题描述 在看<传智播客>的视频,到了ADO.Net部分,这里是要从VS里连接数据库,老是出现题目报错代码:staticvoidMain(string[]args){stringdataDir=AppDomain.CurrentDomain.BaseDirectory;if(dataDir.EndsWith(@"binDebug")||dataDir.EndsWith(@"binRelease")){dataDir=System.IO.Directory

【算法题】求一个-1,0,1三值矩阵中的最大全1子块

问题描述 并不要求子块仍为一个矩阵,但要求形状为凸多边形,可进行行列变换,只要求所求子块最大.我的理解是:用贪心法找出一个连续的最全1块,再进行行列变换保证子块形状为凸.数据量较大,文件形式给出.求助啊,现在连个方向都没有... 解决方案 解决方案二:同不会,帮顶..