求讲解一道C语言的题~!

inti=6,j=6,k=3;则表达式k+=i>j?i++:--j;的值为?求解释求答案~... int i=6,j=6,k=3;
则表达式 k + = i > j ? i ++ : - - j;的值为?

求解释 求答案~
展开
 我来答
簗簗l
2013-02-28
知道答主
回答量:8
采纳率:0%
帮助的人:3.6万
展开全部
值为8 i>j的值为(0),则k+=--j; 则K=8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc4e313
2013-02-28
知道答主
回答量:38
采纳率:0%
帮助的人:9万
展开全部
if(k+=i>j){
i++;

}
else{
--j;
}
转意后就是这样的,这样应该就能看懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shinelintao203
2013-02-28 · TA获得超过528个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:60.1万
展开全部
int i = 6;
int j = 6;
int k = 3;

if (i > j) { // i=6,j=6 -> go else
k += i;
i++;
} else { //
j-=1; // j = 5
k = k + j; // k = 3 + 5 = 8
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chuai1609
2013-02-28 · 超过32用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:51.7万
展开全部
A?B:C
是C语言的一个经典表达。

意思就是问,A条件满不满足,如果满足,执行B,不满足,执行C

你问的这道题,还真有点难。请确认你输入的没有错误,其实这种程序,你自己拿个程序写一下就明白了

这里要注意运算符的优先级结合问题。
正确答案应该是8. 我用g++编过了。

他的原理是这样的。

+=运算符的优先级没有?:高。
所以,先进行运算的是i>j?i++:--j表达式
按照我刚才说的。这句话的意思是。i是否大于j,大于执行i++。不大于执行--j。但是实际上i==j
所以这里要执行--j
然后在执行 k+= 操作。
相当于k + = --j
意思是,在执行这句话之前,j就已经被减1,所以是5、k = 3.
k + = --j相当于 k = k + --j
所以结果是 k = 3 + 5 =8
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0410houjinbiao
2013-02-28
知道答主
回答量:37
采纳率:0%
帮助的人:28.2万
展开全部
表达式结果是6
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式