(6)定义int a=5,b;,则执行表达式b=++a*--a之后,变量b的值为 【6】 。
6个回答
展开全部
25
30是不对的,如果改成以下形式答案为30;
int
a=5,b,c,d;
c=++a;
d=--a;
b=c*d;
则b=30;
b=++a*--a;
等效于b=(++a)*(--a)
(++a)这个表达式的值是a这个变量,不是6这个常量。
(--a)同理。
所以执行后其实就是b=a*a,这个时候++a,--a的操作后,a还是5
所以b=5*5;
30是不对的,如果改成以下形式答案为30;
int
a=5,b,c,d;
c=++a;
d=--a;
b=c*d;
则b=30;
b=++a*--a;
等效于b=(++a)*(--a)
(++a)这个表达式的值是a这个变量,不是6这个常量。
(--a)同理。
所以执行后其实就是b=a*a,这个时候++a,--a的操作后,a还是5
所以b=5*5;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=++a*--a 这个表达式要计算什么,出题目的人知道吗?为什么出题目的人不舍得多加几个括号和空格,避免多义性呢?用这种方法来为难初学者,真是误人子弟。
由于表达式的多义性(不同方法断句),不同编译器计算结果将不同。
MS VC++ 得 25
由于表达式的多义性(不同方法断句),不同编译器计算结果将不同。
MS VC++ 得 25
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
25 b=++a*--a;
等效于b=(++a)*(--a)
(++a)这个表达式的值是a这个变量,不是6这个常量。
(--a)同理。
所以执行后其实就是b=a*a,这个时候++a,--a的操作后,a还是5
所以b=5*5;
等效于b=(++a)*(--a)
(++a)这个表达式的值是a这个变量,不是6这个常量。
(--a)同理。
所以执行后其实就是b=a*a,这个时候++a,--a的操作后,a还是5
所以b=5*5;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
而我觉得.....++ ,--的运算级别比* 高...
先执行++a 和--a;
而++a,--a;又存在一个自右边向左的运算结合;
先是 --a 得出 4; 然后4 被++a 运算 等于5 ;
此时的 a已经变到5了!!
再到 * 运算 就=5*5=20....
先执行++a 和--a;
而++a,--a;又存在一个自右边向左的运算结合;
先是 --a 得出 4; 然后4 被++a 运算 等于5 ;
此时的 a已经变到5了!!
再到 * 运算 就=5*5=20....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询