C语言入门求助

怀而慕思 2019-11-05 02:47:12
#include <stdio.h> int main(void) { int a=5,b=4,c=6,d; printf("%d",d=a>b?a>c? a:b:c); return 0; } 输出结果为4 无法理解两个连续的三目运算符,求大佬解释
...全文
119 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
天外怪魔 2019-11-07
  • 打赏
  • 举报
回复
根据https://en.cppreference.com/w/cpp/language/operator_precedence 条件运算符(?:)结合方向自右向左。因此,添加小括号后等价下面的:
a>b?(a>c? a:b):c
首先计算a>b,结果为真,表达式取
a>c?a:b
的值。 然后计算a>c,结果为假,表达式取b的值,为4。 依次回溯回去,整个条件运算表达式的值为4。 接着计算d=4,赋值表达式取值为运算符右边的值,整个赋值表达式的值为4。 最后,用printf输出结果4。 ------------------------------------------------------------------------------------------./ 独孤九剑,万佛朝宗,三花聚顶,五气朝元! 独孤九剑,万佛朝宗,三花聚顶,五气朝元! 独孤九剑,万佛朝宗,三花聚顶,五气朝元! 独孤九剑,万佛朝宗,三花聚顶,五气朝元! 独孤九剑,万佛朝宗,三花聚顶,五气朝元!
windyNight99 2019-11-06
  • 打赏
  • 举报
回复
引用 11 楼 liups 的回复:
[quote=引用 10 楼 xianming3 的回复:] 建议:这种净是符号的,搞不清是干什么用的,不管是几目运算符或者其他东西,尽量不要使用,老师讲的时候你只要知道就可以了,如果真正编程的时候使用容易造成混乱。
老师讲优先级和结合性时,出这样的习题还是没有问题的,不会的话翻一下书嘛,考试就不应该出这种题目了,没有意义的东西,学习的目的应该是正确编程,而不是去纠结这种语法细节。写程序的时候如果有这种需求请记住多加括号就是了[/quote] 说的很对,真正写程序的时候还是要尽量写那些让自己清楚明白的,提高可读性,以免发生混乱。
liups 2019-11-06
  • 打赏
  • 举报
回复
引用 10 楼 xianming3 的回复:
建议:这种净是符号的,搞不清是干什么用的,不管是几目运算符或者其他东西,尽量不要使用,老师讲的时候你只要知道就可以了,如果真正编程的时候使用容易造成混乱。
老师讲优先级和结合性时,出这样的习题还是没有问题的,不会的话翻一下书嘛,考试就不应该出这种题目了,没有意义的东西,学习的目的应该是正确编程,而不是去纠结这种语法细节。写程序的时候如果有这种需求请记住多加括号就是了
windyNight99 2019-11-06
  • 打赏
  • 举报
回复
建议:这种净是符号的,搞不清是干什么用的,不管是几目运算符或者其他东西,尽量不要使用,老师讲的时候你只要知道就可以了,如果真正编程的时候使用容易造成混乱。
ggglivw 2019-11-05
  • 打赏
  • 举报
回复
扔一份华为C编程规范到他脸上,叫他看看先
ggglivw 2019-11-05
  • 打赏
  • 举报
回复
这种老师直接喷死他,误人子弟
怀而慕思 2019-11-05
  • 打赏
  • 举报
回复
初学c语言,老师出的题
怀而慕思 2019-11-05
  • 打赏
  • 举报
回复
原来如此,感谢感谢
ggglivw 2019-11-05
  • 打赏
  • 举报
回复
谁让你一行2个三目运算符的,在公司里面这样写要被主管骂死的
pro_or_check 2019-11-05
  • 打赏
  • 举报
回复
(a>b) ? (a>c?a:b) : (c)
fireyou 2019-11-05
  • 打赏
  • 举报
回复
a>b?a>c? a:b:c --> a>b?b:c -->b
怀而慕思 2019-11-05
  • 打赏
  • 举报
回复
引用 1 楼 proorck2019的回复:
不管几目运算符,都返回一个值, a>c?a:b返回b 所以是4 加括号就看着清楚了。
a>b?(a>c?) a:b:c 这样的话,a>b不管了吗?
pro_or_check 2019-11-05
  • 打赏
  • 举报
回复
不管几目运算符,都返回一个值, a>c?a:b返回b 所以是4 加括号就看着清楚了。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧