怎样理解条件表达式的结合性

来源:百度知道 编辑:UC知道 时间:2024/06/07 14:28:25
我在讲C语言,讲到条件表达式,不能理解条件表达式的结合性问题,说是右结合,那么,先算什么,再算什么呢?
老大啊,我说的已经很清楚了啊,我在给学生讲C语言啊,我总不能说死记下来就行了吧,说不出个三六九,学生怎么理解啊!

?:

a=b<c?b:c<d?c:d;

右结合,就是从右往左 a=(b<c)?(b):( (c<d)?(c):(d) );

左结合,就是从左往右 a=( (b<c)?(b):(c<d) )?(c):(d);

条件运算符吧?

条件?表达式1:表达式2
算法
先判断条件
非0,只计算表达式1,并且其结果就是整个操作的结果;
0,只计算表达式2.......

至于右结合,书上都是那么说的,没看出来,关键是它有3个操作数,这个就..。

哦,我也明白了。。。。

伊梵不是说的挺清楚了吗?我都明白了你还不明白?

hehe 我上学的时候也对这个感到头疼。
不过耐心看看书,无非就那2种运算等级。刚接触不习惯而已。先死记课本吧
会习惯的,如首先要确定优先级如:
优先级 操作符

1 () [] -> .
::
! ~ ++ --
2 - (unary) * (dereference)
& (address of) sizeof
3 ->* .*
4 * (multiply) / %
5 + -
6 << >>
7 < <= > >=
8 == !=
9 & (bitwise AND)
10 ^
11 |
12 &&
13 ||
14 ? :
15 = += -= etc.
16 ,
然后看看结合型,这样就可以根据运算符的结合型依次计算:

教学生的话就麻烦了,估计我们一样,有种自己会但不知如何解释的难处,不过有一点你必须给学生说清楚,那就是学习C语言没有捷径可走,该背住的就得背住,不然再往后一有例题编程就会困惑了。

首先要确定优先级如: