cc 运算符的优先级和结合性ZZ 2010-05-18 15:29PrecedenceOperatorDescriptionExampleAssociativity1()[]->.::--Grouping operatorArray accessMember access from a pointerMember access from an objectScoping operatorPost-
C语言操作符优先级与结合性Created with an evaluation copy of . To discover the full versions of our APIs please visit: :
#
附录3 C语言中的运算符及其优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式自增运算符变量名变量名单目运算符--自减运算符--变量名变量名--单目运算符取值运算符指针变量单目
附录B C语言运算符优先级和结合性优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式自增运算符变量名变量名单目运算符--自减运算符--变量名变量名--单目运算符取值运算符指针变量单目运
关于C运算符的优先级运算符中具有最高优先级的是那些不参与运算的操作符:例如下标运算符( [] )函数调用结构体变量运算符(. ->)它们的结合方向是自左向右<别的书没说过>接着就是一元运算符它们在参与运算的操作符中具有最高优先级因为函数调用的优先级高于一元运算符因此当p为一函数指针时必须用(p)( )来调用函数p( )则表明p为返回一指针的函数<C语言就是如此奥妙>一元运算符的结合方向是自右向左<
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式自增运算符变量名变量名单目运算符--自减运算符--变量名变量名--单目运算符取值运算符指针变量单目运算符取地址运算符变量名单目运算符逻辑非
C语言运算符优先级和口诀 不要求你背下来只是知道有这个内容即可当你需要的时候来看看一共有十五个优先级:?1 ? () ?[] ?. ?->2 ? ? ? -(负号) ?-- ? (取变量地址) ? (type)(强制类型) ? ?sizeof?3 ? 4 ? -?5 ? >> << ?6 ? > >= < <=?7 ? == = ??8 ? ?9 ? ??10 ? ??11
最高最高优先级的其实并不是真正的运算符它们是一类特殊的操作()是与函数相关[]是与数组相关->是与提取相关总结: 1. 关系运算符优于逻辑运算符2. 移位运算符介于算术运算符和比较运算符之间3. 除单目运算符外 算术运算符的优先级最高结合方向自右向左的只有三类:赋值单目和三目其它的都是从左至右结合单目运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运
C语言的运算符具有不同的优先级和它的结合性。在表达式中, 各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,在某种程度上,这也增加了C语言的复杂性。优先级代码部分3429运算符优先级与结合性1、运算符优先级与结合性代码运行结果如下图附录:
违法有害信息,请在下方选择原因提交举报