int a=1,b=0,++a*--a==b?12%5:'x';求解,详细!!!
4个回答
展开全部
++a*--a分开写就是:
a=a+1;
a=a-1;
a*a;
的意思。
至于说++a*--a为什么会是1?那就要看a是初始化为几了,如果初始化为1,那结果自然是1;如果初始化为为2那应该就是4了。
++a*--a==b的意思是把++a*--a的运算结果与b比较一下看是否相等,给谁都不赋值。
12%5用12除以5取余数的意思,它应该等于2。
'x'是C/C++提供的取x的ASCII码的意思;x(小写)的ASCII码是十进制数120,换算成16进制是0x78。你看,用'x'又直观又省事。它就是一个立即数,与你写120和0x78是一回事……
那么整个表达式++a*--a==b?12%5:'x'的意思是什么呢?这个语句叫?语句,是分支语句的一种,是说如果?前面的表达式为真,则执行?后面的语句,否则执行:后面的语句。你这里的具体意思是:如果把整个表达式赋给一个变量p,即p=++a*--a==b?12%5:'x'的话,那么,当++a*--a==b成立(即++a*--a=b)的时候,p的值就等于12%5=2,否则的话p就等于'x',即等于120。
a=a+1;
a=a-1;
a*a;
的意思。
至于说++a*--a为什么会是1?那就要看a是初始化为几了,如果初始化为1,那结果自然是1;如果初始化为为2那应该就是4了。
++a*--a==b的意思是把++a*--a的运算结果与b比较一下看是否相等,给谁都不赋值。
12%5用12除以5取余数的意思,它应该等于2。
'x'是C/C++提供的取x的ASCII码的意思;x(小写)的ASCII码是十进制数120,换算成16进制是0x78。你看,用'x'又直观又省事。它就是一个立即数,与你写120和0x78是一回事……
那么整个表达式++a*--a==b?12%5:'x'的意思是什么呢?这个语句叫?语句,是分支语句的一种,是说如果?前面的表达式为真,则执行?后面的语句,否则执行:后面的语句。你这里的具体意思是:如果把整个表达式赋给一个变量p,即p=++a*--a==b?12%5:'x'的话,那么,当++a*--a==b成立(即++a*--a=b)的时候,p的值就等于12%5=2,否则的话p就等于'x',即等于120。
展开全部
整体来讲这是一个语句。
定义 a=1,b=0,然后计算a*a因为先自增a变为2,再自减,a又变成1,乘后不等于0,
一句条件表达式判断失败则使用:后面的值。
定义 a=1,b=0,然后计算a*a因为先自增a变为2,再自减,a又变成1,乘后不等于0,
一句条件表达式判断失败则使用:后面的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a==b?c:d 这个运算符的功能是先判断a是否等于b,相等则取c,不等取d。前++,——的运算级比乘法高,++a*——a简化为2*1,所以答案是'x'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++,--的优先级最高
然后是逻辑运算符==
最后是三元运算符?:
++a*--a顺序是(++a)然后再(--a)然后再乘,所以是2*1不是0,所以与b不相等,所以去后面的‘x'
结果应该是’x'.
然后是逻辑运算符==
最后是三元运算符?:
++a*--a顺序是(++a)然后再(--a)然后再乘,所以是2*1不是0,所以与b不相等,所以去后面的‘x'
结果应该是’x'.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询