A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 紮西诺尔布 中级黑马   /  2015-4-12 20:55  /  1216 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>
main()
{
    int a=5, b=4, c=6, d;
    printf(”%d\n”, d=a>b? a>c?a:c :b);
}
结果???如何运算的,请讲解!!!!!

10 个回复

正序浏览
这个以后用的少,会了就行
回复 使用道具 举报
可以从后往前推,b前有冒号,但是c前也有冒号,所以(a>c?a:b)是一个整体
回复 使用道具 举报
LoseMyCat 发表于 2015-4-12 22:33
赋值运算符的优先级比三目运算符低,而三目运算符为右结合性,所以这个表达式可以理解为这样:
d = ( a > b ...

非常感谢!!!!!you are great!!!!!!!!!!!继续努力加油吧!!!!!!
回复 使用道具 举报
d=a>b?(a>c?a:c) :b    结果d = c =6
回复 使用道具 举报
d = ( a > b ? (a > c ? a : c) : b )先判断a>b的真假,因为a>b,所以表达式的值是(a > c ? a : c) .然后这个值是多少呢?判断a>c的真假,因为wei'zhen为假,所以返回c的值,所以表达式的值为c的值,所以d=6!!
回复 使用道具 举报
会被炒鱿鱼的
回复 使用道具 举报
你这样写,别人怎么看,实际开发中都是带小括号的或者分开写,没有这样写的...
回复 使用道具 举报
运算符的优先级(从高到低)
括号
正负号
自增自减,非
乘除,取余
加减
移位运算
大小关系
相等关系
按位与
按位异或
按位或
逻辑与
逻辑或
条件运算
赋值运算
位赋值运算
回复 使用道具 举报
a>b?(a>c?a:c):b按照这个顺序:先判断a>b是不是真,结果是真,就要去找所对应的最后一个":",最后一个冒号前面&&第一个问号后面的内容就是当前面a>b为真时所取得值
回复 使用道具 举报
赋值运算符的优先级比三目运算符低,而三目运算符为右结合性,所以这个表达式可以理解为这样:
d = ( a > b ? (a > c ? a : c) : b )
所以最后结果应该为6
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马