前言
在编程时、做题目时C语言的程序优先级总会让人头疼,尤其是在编程量,做题量均未上去时更是一难题。以下是我在对于C语言优先级搜集的一些好用的东东,希望能给以评论,查缺补漏
一、C语言优先级是什么?
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
二、使用步骤
1.运算符
各种运算符间的优先级如下:: 数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。
2.优先级
代码如下(示例):
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号) ++ – &(取变量地址)* (type)(强制类型) sizeof 3 * / % 4 + - 5 >> << 6 > >= < <= 7 == != 8 & 9 ^ 10 | 11 && 12 || 13 ?: 14 = += -= *= /= %= |= ^= &= >>= <<= 15 ,
结合性:2 13 14 是从右至左 其他都是 从左至右
3.口诀
口诀: 括号成员第一; //括号运算符 成员运算符. -> 全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算*、& 乘除余三,加减四; //这个"余"是指取余运算即% 移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等 等于(与)不等排第七; //即== 和!= 位与异或和位或,“三分天下”***十; //这几个都是位运算: 位与(&)异或(^)位或(|) 逻辑或跟与,十二和十一; //逻辑运算符:|| 和 &&,注意顺序:优先级(||) 低于 优先级(&&) 条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高 逗号运算级最低! //逗号运算符优先级最低
总结
口诀是我同学分享的,在这边我分享给大家。 这些优先级记下来,就可以解决大部分优先级的题目了。
C语言优先级定义是从百度百科借鉴的
|