c运算符号.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c运算符号

级别 1级(左结合) ( ) 圆括号;[ ]下标运算符;-指向结构体成员运算符;. 结构体成员运算符。 2级(右结合) “ ! ”逻辑非运算符;“ ~ ”按位取反运算符;“ ++ ”前缀增量运算符;“ -- ”前缀减量运算符; “ - ”负号运算符;(类型)类型转换运算符;“ * ”指针运算符;“ ”地址运算符; “sizeof ” 长度运算符。 3级(左结合) “ * ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。 4级(左结合) “ + ”加法运算符;“ - ”减法运算符。 5级(左结合) 左移运算符; 右移运算符。 6级(左结合) 、=、、=关系运算符。 7级(左结合) “ == ”等于运算符;“ != ”不等于运算符。 8级(左结合) “ ”按位与运算符。 9级(左结合) “ ∧ ”按位异或运算符。 10级(左结合) “ | ”按位或运算符。 11级(左结合) “”逻辑与运算符。 12级(左结合) “ || ”逻辑或运算符。 13级(右结合) ? :条件运算符。 14级(右结合) =、 +=、 -=、 *=、 /=、 %=、 =、 ^=、 |=、 =、 =赋值运算符。 15级(左结合) “,”逗号运算符。 C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为: 子表达式1, 子表达式2, ..., 子表达式n 例如: a + b, c = b, c++ 逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。 逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。 优先级 优先级:C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。 结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。 所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。 具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而-及.是取结构成员。 其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。 另外在C语言里,没有前置后置之分,因为++ -- 是右结合所以右侧优先运算,表现为 操作数后置优先级比较高 的假象,前置和后置的区分是因为运算符重载而后加入C++的 接下来是算术运算符,*、/、%的优先级当然比+、-高了。 移位运算符紧随其后。 其次的关系运算符中, = =要比 == !=高一个级别,不大好理解。 所有的逻辑操作符都具有不同的优先级(单目运算符除外,!和~) 逻辑位操作符的与比或高,而异或则在它们之间。 跟在其后的比||高。 接下来的是条件运算符,赋值运算符及逗号运算符。 在C语言中,只有4个运算符规定了运算方向,它们是、| |、条件运算符及赋值运算符。 、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 b; 运算符的左边位0,则右边表达式b就不再判断。 在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。 赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。 口诀注释 优先级等级口诀 圆方括号、箭头一句号, 自增自减非反负、针强地址长度, 乘除,加减,再

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档