int x=2,y=3; 表达式 x+y---x+x++ - --y 值为 1
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/31 23:28:49
int x=2,y=3; 表达式 x+y---x+x++ - --y 值为 1
这个表达式的值是 2 写错了...囧,运算后x=3,y=1
这个表达式的值是 2 写错了...囧,运算后x=3,y=1
不按照编译器,因为不同编译器的运算结合处理不同,结果也会不同,单纯按照理论计算的话如下:优先计算的是x或者y++和--的运算,也就便成为x+2-x+3- --y,接下来计算X和Y的加减运算,因为--y是在运算后在计算的运算符,接下来变为5- --y,变成--2,也就是值为1
再问: 多谢,式子的值是2,我写错了,要是2的话,是怎么算出来的,用的VC
再答: 额。。具体到编译器的话还真不好说,因为要看编译器的对运算的处理,这个我也没有很深入了解不同编译器的运算处理原理,但是运算原理不变,如果看答案的话那就是这么运算的我先把x,y的数字代入,2+3---2+2++---3,然后优先运算X++即为2+3---2+3---3,然后计算y--,就是2+2-2+3---3,这个时候x=3,y=2,把前面的计算完成就是5---3,然后先计算5-3,=2,在计算--y,也就是这个时候运算值为2,x=3.y=1
再问: 不对呀,x ,y-- 的值不是不变的嘛
再答: 好吧,我整理个逻辑给你,简单来说,不管是x++、y++、x--、y--都是优先运算,也就是先运算x=x+1,再把赋值好的变量代入常规运算,也就是说,假设现在是用你x的变量赋值,1+x++这则运算,首先先运算x++,也就是x赋值变为3,在运算1+x也就是1+3,我列出的其他也是同理,而++x,++y,--x,--y则是相反,他们先进入常规运算符运算,再进行变量自身的运算赋值,例如++x+1这则运算,首先运算x+1也就是2+1,在运算++x也就是x赋值变量为3
再问: 多谢,式子的值是2,我写错了,要是2的话,是怎么算出来的,用的VC
再答: 额。。具体到编译器的话还真不好说,因为要看编译器的对运算的处理,这个我也没有很深入了解不同编译器的运算处理原理,但是运算原理不变,如果看答案的话那就是这么运算的我先把x,y的数字代入,2+3---2+2++---3,然后优先运算X++即为2+3---2+3---3,然后计算y--,就是2+2-2+3---3,这个时候x=3,y=2,把前面的计算完成就是5---3,然后先计算5-3,=2,在计算--y,也就是这个时候运算值为2,x=3.y=1
再问: 不对呀,x ,y-- 的值不是不变的嘛
再答: 好吧,我整理个逻辑给你,简单来说,不管是x++、y++、x--、y--都是优先运算,也就是先运算x=x+1,再把赋值好的变量代入常规运算,也就是说,假设现在是用你x的变量赋值,1+x++这则运算,首先先运算x++,也就是x赋值变为3,在运算1+x也就是1+3,我列出的其他也是同理,而++x,++y,--x,--y则是相反,他们先进入常规运算符运算,再进行变量自身的运算赋值,例如++x+1这则运算,首先运算x+1也就是2+1,在运算++x也就是x赋值变量为3
int x=3,y=2; 则表达式(y++==--x)?y++:x++的值为多少
int x=2,y=3,z=4; 则表达式x+(y>!z)的值为【1】.
若有定义"int x=1,y=1;",表达式(!x||y--)的值为
经过以下语句定义后,表达式z+=x>y?++x:++y的值为().int x=1,y=2,z=3
int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为_____.【参考答案】 1 为什么?
设 int x = 1 ,y = 2则表达式x+=++y的值是
2.设int x=2,y=1;,则表达式(!x||y--)的值是多少?
int x=2,y=3;则++x>y--?x:y的值为2,
假设定义:int x=3,y=3;则复合赋值表达式x/=1+y的值为?
int x=2,y=3,z=4:则表达式!(x+y)>z的值为____.
设有说明:int x=1,y=2;执行条件表达式(x=y)?++x:--x后,x的值为多少,为什么?
设x,y均为int型变量,且x=1,y=2;则表达式double(1+x/y)的值为?