
若有以下定义,则计算表达式y+=y-=m*=y后的y值
#include"stdio.h"voidmain(){intm=5,y=2;y+=y-=m*=y;printf("%d",y);}答案为什么是-16,而不是-6。希望有...
#include "stdio.h"
void main()
{
int m=5,y=2;
y+=y-=m*=y;
printf("%d",y);
}
答案为什么是-16,而不是-6。
希望有精细的解释 展开
void main()
{
int m=5,y=2;
y+=y-=m*=y;
printf("%d",y);
}
答案为什么是-16,而不是-6。
希望有精细的解释 展开
展开全部
从左往右分解,y+=y-=m*=y 就是 y=y+(y-=m*=y)
y-=m*=y 就是 y=y-(m*=y)
m*=y 就是 m=m*y
那么就等于:
m=m*y;//m=10,y=2
y=y-m;//m=10,y=-8
y=y+y;//m=10,y=-16
y为-16
扩展资料:
嵌套循环(LOOP JOIN)类似于C语言编程时的双重循环。作为外层循环逐行扫描的表,针对外部输入表的每一行,适用于外部输入表的行数较少,内部输入表创建了索引的情形。
合并连接(MERGE JOIN)类似于两个有序数组的合并。两个输入表都在合并列上排序;然后依序对两张表逐行做连接或舍弃。如果预先建好了索引,合并连接的计算复杂度是线性的。
参考资料来源:百度百科-连接
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
y+=y-=m*=y;
按照运算优先级
y+= (A)
需要先计算 (A),不然根本不知道y要加多少
(A) = y-=(B)
需要先计算(B),不然根本不知道y要减多少
(B)=m*=y = 10
得出了(B)的值,接下来计算 y-=(B) 即(A)的值 得出 y=-8
得出y的值后计算y+= (A)
即: -8+=(-8) = -16
明白了?
按照运算优先级
y+= (A)
需要先计算 (A),不然根本不知道y要加多少
(A) = y-=(B)
需要先计算(B),不然根本不知道y要减多少
(B)=m*=y = 10
得出了(B)的值,接下来计算 y-=(B) 即(A)的值 得出 y=-8
得出y的值后计算y+= (A)
即: -8+=(-8) = -16
明白了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-12-28
展开全部
这种自加自减的运算是从右往左的,所以先算m*=y,m=m*y=10;y-=10,y=y-10=-8;但是现在的y经是-8了,而不是2,所以最后y+=-8,y=-8-8=-16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从右向左读
M*=Y // M=M*Y 此时M=10 Y=2 表达式=10
Y-=M // Y=Y-M 此时Y=2-10=-8
Y+=Y // Y=Y+Y 此时Y=-8 + -8 =-16
M*=Y // M=M*Y 此时M=10 Y=2 表达式=10
Y-=M // Y=Y-M 此时Y=2-10=-8
Y+=Y // Y=Y+Y 此时Y=-8 + -8 =-16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询