C语言问号表达式

a/b?b上面的表达式是什么意思?再一份面试题上看到的... a/b?b
上面的表达式是什么意思?再一份面试题上看到的
展开
 我来答
发条言娱乐
2018-03-30 · 互联网资讯,用女性视角带来不一样的观点
发条言娱乐
采纳数:166 获赞数:6928

向TA提问 私信TA
展开全部

……?……:……

式A?B:C值为:若A为真,则B;若A为假,则C。

但有一点是值得注意的,那就是问号表达式的结合性,问号表达式是从右往左的运算方向

尤其是当问号表达式嵌套使用时得注意这个问题,例如

代码:

int a=1,b=2,c=3,d=4;

printf("%d",a<b?a:c<d?c:d);

正确结果是:1

因为先执行的是c<d?c:d,会返回c,然后执行a<b?a:c

因此得到的结果就是1(可以在编译器上实验一下)

树嘉毓小蕾
2019-06-03 · TA获得超过3710个赞
知道大有可为答主
回答量:3130
采纳率:30%
帮助的人:218万
展开全部
其中:a<b?a:b是一个“条件表达式”;而“c=

是赋值表达式,那么因为在C语言中,条件表达式的优先级排名13
高于赋值表达式的优先级14,因此这个语句的意思就是:当a小于b时,c=a;而当a大于或者等于b时,c=b;再翻译过来就是说这个语句执行完得到的效果就是c的值是取得a,b俩者当中较小的那个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
df601562566
推荐于2017-11-26 · TA获得超过502个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:336万
展开全部
a/b?b没有写完整。
编译时是不合法的句子。
我猜想是三目运算符:
条件?真值:假值
a/b?b:a
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4ef2217
2014-10-30 · 超过21用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:36万
展开全部
你说的是? a:b这种吗.
max=(a>b)?a:b;
等效于
if(a>b)
{
max=a;

}
else
{
max=b;

}
提问者评价
不错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
变成一颗星星吧
2013-09-29
知道答主
回答量:25
采纳率:0%
帮助的人:16.7万
展开全部
问号表达式是这个样子的 语句a?语句b:语句c
如果满足语句a,就执行语句b;
否则执行语句c.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式