黑马程序员技术交流社区
标题:
关于三目运算
[打印本页]
作者:
紮西诺尔布
时间:
2015-4-12 20:55
标题:
关于三目运算
#include <stdio.h>
main()
{
int a=5, b=4, c=6, d;
printf(”%d\n”, d=a>b? a>c?a:c :b);
}
结果???如何运算的,请讲解!!!!!
作者:
LoseMyCat
时间:
2015-4-12 22:33
赋值运算符的优先级比三目运算符低,而三目运算符为右结合性,所以这个表达式可以理解为这样:
d = ( a > b ? (a > c ? a : c) : b )
所以最后结果应该为6
作者:
举举手
时间:
2015-4-12 23:15
a>b?(a>c?a:c):b按照这个顺序:先判断a>b是不是真,结果是真,就要去找所对应的最后一个":",最后一个冒号前面&&第一个问号后面的内容就是当前面a>b为真时所取得值
作者:
张红兴
时间:
2015-4-12 23:19
运算符的优先级(从高到低)
括号
正负号
自增自减,非
乘除,取余
加减
移位运算
大小关系
相等关系
按位与
按位异或
按位或
逻辑与
逻辑或
条件运算
赋值运算
位赋值运算
作者:
弥风冻雪
时间:
2015-4-13 00:02
你这样写,别人怎么看,实际开发中都是带小括号的或者分开写,没有这样写的...
作者:
丶浩浩丶
时间:
2015-4-13 00:17
会被炒鱿鱼的
作者:
tyisbest
时间:
2015-4-13 01:44
d = ( a > b ? (a > c ? a : c) : b )先判断a>b的真假,因为a>b,所以表达式的值是(a > c ? a : c) .然后这个值是多少呢?判断a>c的真假,因为wei'zhen为假,所以返回c的值,所以表达式的值为c的值,所以d=6!!
作者:
梁奎元
时间:
2015-4-13 18:19
d=a>b?(a>c?a:c) :b 结果d = c =6
作者:
紮西诺尔布
时间:
2015-4-13 23:56
LoseMyCat 发表于 2015-4-12 22:33
赋值运算符的优先级比三目运算符低,而三目运算符为右结合性,所以这个表达式可以理解为这样:
d = ( a > b ...
非常感谢!!!!!you are great!!!!!!!!!!!继续努力加油吧!!!!!!
作者:
花短裤的夏天
时间:
2015-4-14 00:02
可以从后往前推,b前有冒号,但是c前也有冒号,所以(a>c?a:b)是一个整体
作者:
董zhx
时间:
2015-4-14 00:03
这个以后用的少,会了就行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2