int x=5,y=5;执行y=++x*--y后,x=?y=?

书中给的答案是x=6,y=30。自己感觉应该是x=6,y=24。到底哪个对还请高手给予指导,谢谢!

y=529

解析:++或--后置运算符优先级小于*,而前置运算符优先级却大于*,所以,运行y=x++*x++;时,首先计算y=x×x=5×5=25,再计算x=x+1=6;x=x+1=7;运行y=--y*--y;时,先y=y-1=25-1=24,;再计算y=24-1=23;最后计算y=23×23=529.

即等效代码为:

int x=5;

y=x*x;

x=x+1;

x=x+1;

y=y-1;

y=y-1;

y=y*y;

运行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-12-01
public class Op1 {
public static void main(String[] args) {
int x=5;
int y=5;
y=++x*--y;
System.out.println(x);
System.out.println(y);
}
}
我自己测试了一下发现是6和24对,这东西最好多动手自己测。才能学好编程本回答被提问者采纳
第2个回答  2009-06-29
就是24
y=++x(6)*--y(4);
x == 6;
y = 4*6 == 24;
第3个回答  2009-06-29
x=6,y=24
第4个回答  2009-06-29
你是对的,书上错了

int x=5,y=5;执行y=++x*--y后,x=?y=?
解析:++或--后置运算符优先级小于*,而前置运算符优先级却大于*,所以,运行y=x++*x++;时,首先计算y=x×x=5×5=25,再计算x=x+1=6;x=x+1=7;运行y=--y*--y;时,先y=y-1=25-1=24,;再计算y=24-1=23;最后计算y=23×23=529.即等效代码为:int x=5;y=x*x;x=x+...

int x=5,y=5;执行x+=y++后,x=?y=?
原因:"y++"表示使用y之后再将y的值加1,所以是运算x+=y,这个时候的x为5,y也为5,得到结果为x=10,然后y自增1,结果y=6.补充:y++和++y的区别在于前者是使用y这个变量后再将y自增1,后者是使用y之前就先将y自增1.所以如果表达式为x+=++y,其结果为x=11 y=6 ...

问:int x=5;为什么y=++x*--x的结果是25而printf("%d",++x*--x);的...
这里先执行++x,在执行--x,最后相乘 ++x后,值为(5+1)=6,然后--x,值为(6-1)=5,最后相乘 6*5=30 y=++x*--x赋值运算 与 输出运算时不同的,我说一下赋值运算时表达式的运算,就是说这里最终操作是x*x,而不是(++x)*(--x)同理:x->6->5,最后相乘的 举例:int j=5;q...

int x=1,y=2,执行表达式(x>y)?++x;++y后,x和y的值??
int x=1,y=2,执行表达式(x>y)?++x;++y后,x和y的值?? 我来答 1个回答 #热议# 生活中有哪些成瘾食物?皮鞋你妹啊 2016-10-09 知道答主 回答量:19 采纳率:50% 帮助的人:2.8万 我也去答题访问个人页 展开全部 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 为你推荐:特别推荐 ...

C语言int x=5; y=++x;(1) y=x++;(2) 请分别计算出序号(1)和(2)处...
(1)的答案是6 (2)的答案是6 ++x 是前缀表达式 ,分为两部 例如y=++x 先 x=x+1 再把 y=x;x++ 是后缀表达式 ,分为两部 例如y=x++ 先 y=x 再把 x=x+1;记忆方法是 前缀先加再用,后缀先用再加,减法类似 ...

关于c++的问题。int x=4,y=5 表达式y>x++?x--:y++。。。的值是_百度...
这是个问号表达式,如果y大于x则执行x--反之执行y++,但是执行之前都会执行x++;那么此时x==,y==,比较是比较的x++之前的值,所以执行x--;此时x==5,但是先执行x,所以表达式的值为5,之后x==4y==5;

int x=5;为什么y=++x*--x的结果是25而printf("%d",++x*--x);的结果...
都是25吧,include <iostream> using namespace std;main(){ int n=5,a;a=++n*--n;cout<<a<<(++n*--n)<<endl;} 我按照这个算,都是25.可能是用的编译器不同

已知有int x=5,分别执行表达式y=x++和y=++x后,y 的值分别为( )?
y=x++ 出来的应该是5 x++是你这条运行完之后x才变成6, 另外一个出来的是6,++x是先加1在赋值

C#里面 int x=5 int y=(x++)+(++x)+x为什么y这个表达式中后一个x取...
因为x++ 和++x 都是在x这个内存空间上操作 并没有开辟临时的变量空间 所以前面修改了 x 后面读出来的自然是修改后的值 记得采纳啊

执行语句,int x=5,y=0;while(--x)y++;输出y的值
当X=5时 进入循环 x=4 y = 1 当x=4时 进入循环 x=3 y=2 当x=3时 进入循环 x=2 y=3 当x=3时 进入循环 x=1 y=4 当x=1时 进入循环 x=0 不符合循环条件 退出循环 最后 结果 y=4

相似回答