说明:
考试 要考C语言 运算符 优先级顺序,苦恼的要死
机智的我已经 结合了一下 其他知识,成功总结出 绕口令
绕口令
想上位,上找关系,下合逻辑,经过上面计算后,才可以赋值
赋值前 有个小瘪三 在偷懒,他说 与后才能干或
后增与 “.” 要,在左前,转型 四取 在右后
个人感觉好记多了 :
- 四取:取反、取地址、取内容、取大小
结合一下 官网优先级 截图,理解一下
运算优先级
老师说的什么 狗屁“优先级高的先运算”,不如讲点原理性东西,理解的快
方向: 最开始时,永远的 “自左向右” 的运算方向
那为啥,会有 优先级高先运算呢?
个人将 微机原理 知识 <中断>进行了,结合理解,发现 了个规律
规律 : 优先级高的 会打断优先级 低的,进行先运算
那如何 实现打断呢?
-
从第一个符号 命名为(符号1) 开始,(一般是 =) 自右向左 查找
-
此符号 (符号1) 右侧 出现的 第一个符号 命名为(符号2),
与 符号 (符号1) 比较优先级- 优先级高于 (符号1) ,后续将 由 该符号 (符号2),做 与第三个符号 命名为(符号3) 的比较优先级
- 优先级低于 (符号1), 将 符号(2) 之前的内容,做计算,该次 比较 结束,上上一次的符号 再开始律
-
直到右侧没有 符号为止
练习
看了那么多 ,练习一下?
t=a+b<c+d?a+b:c+d*10
这一题 该怎么算呢?
且看我 按照上面的分析 给 做一遍,大概就明白了
答案就是:33
我也就会多了,自己可以根据口诀,慢慢理解