C语言,int i=5;i+=i++; i的值是多少?
展开全部
关于这个问题,你一定要理解优先级的意义~
所谓优先级,就是在执行一个运算时的顺序,比如我们小时候学的先乘除,后加减,意思就是3+5*4这个式子我们是先算后面的5*4,那么如果有个括号,(3+5)*4,那么,就是先算3+5了,为什么?因为乘除法的优先级比加减法高,而括号的优先级又比乘除法要高~如果是相同优先级就是从左到右依次计算了
我们换到你这道题上,+=这个运算符的优先级比++这个运算符低,所以先算++这个运算符,关于这个自加运算符,有是一个考点,++i是先+1,再使用,而i++是先使用,后+1,考虑到你刚接触C语言不久,这条规则你先死记下来,以后慢慢就会明白~
i是5,加1变成6,+=运算符意思是这样的,比如x+=y,就是x=x+y,你也可以理解成把等号移到前面,然后再加一个最开始得字符`
现在我们看这道题目就简单了,i先加一再使用,就变成了6,i=i+i,这时候系统里的i已经是6了,所以就是6+6=12
所谓优先级,就是在执行一个运算时的顺序,比如我们小时候学的先乘除,后加减,意思就是3+5*4这个式子我们是先算后面的5*4,那么如果有个括号,(3+5)*4,那么,就是先算3+5了,为什么?因为乘除法的优先级比加减法高,而括号的优先级又比乘除法要高~如果是相同优先级就是从左到右依次计算了
我们换到你这道题上,+=这个运算符的优先级比++这个运算符低,所以先算++这个运算符,关于这个自加运算符,有是一个考点,++i是先+1,再使用,而i++是先使用,后+1,考虑到你刚接触C语言不久,这条规则你先死记下来,以后慢慢就会明白~
i是5,加1变成6,+=运算符意思是这样的,比如x+=y,就是x=x+y,你也可以理解成把等号移到前面,然后再加一个最开始得字符`
现在我们看这道题目就简单了,i先加一再使用,就变成了6,i=i+i,这时候系统里的i已经是6了,所以就是6+6=12
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11只是结果
int i=5; i+=i ++ ; 可拆分为i+=i 和 ++ 前一部分就已经是10了。
而 int i=5; i+= ++i; 这句 ++i为6 ,int i=5; i+= ++i; 的结果为12。
int i=5; 验证i++;为6 ++i;也为6
'优先级'优先,还是编译顺序优先
int i=5; i+=i ++ ; 可拆分为i+=i 和 ++ 前一部分就已经是10了。
而 int i=5; i+= ++i; 这句 ++i为6 ,int i=5; i+= ++i; 的结果为12。
int i=5; 验证i++;为6 ++i;也为6
'优先级'优先,还是编译顺序优先
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11
追答
“这个题很好入手,慢慢来,我们先看表达式两边,由于后缀自加i++的优先级是大于复合加法运算符的+=,所以先计算i++,值为6,再执行i=i+6,i为5,结果为11”前面那个朋友的这样解释应该不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询