int a=2; a*=2+3;a的值为什么等于12?

 我来答
帐号已注销
2019-07-14 · TA获得超过1.2万个赞
知道答主
回答量:25
采纳率:0%
帮助的人:5824
展开全部

int a=2; a*=2+3;a的值不等于12,而是10。

a*=2+3;这个程序算式中是优先算2+3的,因为+的优先级比*=高。

也就是a*=5;

a*=5相当于a=a*5,又因为已经定义了a=2,所以a*5=2*5=10。

printf(a)时运行程序后得出结果也是10。


扩展资料

C语言中的运算符优先级介绍:

运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。

例如 x = 7 + 3 * 2,在这里,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。常见的运算优先级如下:

1、后缀     () [] -> . ++ - -      从左到右     

2、一元     + - ! ~ ++ - - (type)* & sizeof     从右到左     

3、乘除     * / %     从左到右     

4、加减     + -     从左到右     

5、移位     << >>     从左到右     

6、关系     < <= > >=     从左到右     

莫道無情
2019-11-13 · TA获得超过1.5万个赞
知道答主
回答量:317
采纳率:100%
帮助的人:8.3万
展开全部

a的值是10 ,不是12。

int a=2; a*=2+3;语句执行过程:

int a=2;//将2赋值给a

a*=2+3;//要考虑运算符的优先级,运算符+的优先级大于*=,故a*=5,即a=a*5。a被赋值为2,所以a=2*5=10。

扩展资料:

运算符优先级:

1、优先级

单目运算符 > 双目运算符 > 三目运算符

2、单目运算符优先级

结合性规定对于一元运算符是冗余的,只为完备而给出:一元前缀运算符 始终 从右到左 结合,delete ++*p 被解释为 delete(++(*p)) ;而 一元后缀运算符 始终 从左到右 结合,a[1][2]++ 被解释为 ((a[1])[2])++

3、双目运算符优先级

四则运算运算符 > 移位运算符 > 关系运算符 > 逻辑位运算符 > 逻辑运算符 > 赋值运算符;

四则运算符中,+、- 优先级低于 *、/、%;

比较运算符中,==、!= 优先级低于 >、<、>=、<=;

4、三目运算符优先级

C 中,三元条件运算符拥有高于赋值运算符的优先级。因此,表达式 e = a < d ? a++ : a = d 在 C++ 中剖析成 e = ((a < d) ? (a++) : (a = d)),但在 C 中会由于 C 的语法或语义制约而编译失败。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序员殷保华
推荐于2017-09-22 · 专注于互联网、编程技术讨论交流。
程序员殷保华
采纳数:246 获赞数:7107

向TA提问 私信TA
展开全部
怎么可能等于12呢?
这种东西自己试一下就好了。
答案是肯定是10,
a*=2+3也就是a=a*(2+3)=2*5=10。
 #include<stdio.h>
  int main(void)
  {
  int a=2;
a*=2+3;
  printf("%d",a);
  return 0;
  }
上面的代码放到vc下面 运行一下,输出a的值看看。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2012-12-16 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3429万
展开全部
复合赋值运算符(+=、-=、*=、/=)的优先级低于算数运算符(+、-、*、/),所以a *= 2 + 3可写作
a = a * (2 + 3),由此可见,2 * (2 + 3) = 10。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhou2214
2012-12-16 · TA获得超过706个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:507万
展开全部
执行顺序如下:
1、a=2 a初始化为2
2、2+3 得到一个临时值5
3、a*=() 等价于 a=a*() , 这儿的括号里是上面的结果5,因此a=2*5 ,最后得到10.
追问
为什么 2+3 这个临时值等于6呀??>.<
追答
我错了。。。尴尬死了,,,被楼主曼曼发现了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式