精华内容
下载资源
问答
  • C语言运算符号优先级顺序.pdf
  • C语言运算优先级

    2015-09-05 08:51:07
    相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。 基本的优先级需要记住: 指针最优,单目运算优于双目运算。如正负号。 ...

    优先级编辑

    优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
    相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
    基本的优先级需要记住:
    指针最优,单目运算优于双目运算。如正负号。
    先乘除(模),后加减。
    先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
    逻辑运算最后计算。


    编辑

    优先级
    运算符
    名称或含义
    使用形式
    结合方向
    说明
    1
    []
    数组下标
    数组名[整型表达式]
    左到右

    ()
    圆括号
    (表达式)/函数名(形参表)

    .
    成员选择(对象)
    对象.成员名

    ->
    成员选择(指针)
    对象指针->成员名

    2
    -
    负号运算符
    -表达式
    右到左
    单目运算符
    (类型)
    强制类型转换
    (数据类型)表达式

    ++
    自增运算符
    ++变量名/变量名++
    单目运算符
    --
    自减运算符
    --变量名/变量名--
    单目运算符
    *
    取值运算符
    *指针表达式
    单目运算符
    &
    取地址运算符
    &左值表达式
    单目运算符
    !
    逻辑非运算符
    !表达式
    单目运算符
    ~
    按位取反运算符
    ~表达式
    单目运算符
    sizeof
    长度运算符
    sizeof 表达式/sizeof(类型)

    3
    /
    表达式/表达式
    左到右
    双目运算符
    *
    表达式*表达式
    双目运算符
    %
    余数(取模)
    整型表达式%整型表达式
    双目运算符
    4
    +
    表达式+表达式
    左到右
    双目运算符
    -
    表达式-表达式
    双目运算符
    5
    <<
    左移
    表达式<<表达式
    左到右
    双目运算符
    >>
    右移
    表达式>>表达式
    双目运算符
    6
    >
    大于
    表达式>表达式
    左到右
    双目运算符
    >=
    大于等于
    表达式>=表达式
    双目运算符
    <
    小于
    表达式<表达式
    双目运算符
    <=
    小于等于
    表达式<=表达式
    双目运算符
    7
    ==
    等于
    表达式==表达式
    左到右
    双目运算符
    !=
    不等于
    表达式!= 表达式
    双目运算符
    8
    &
    按位与
    整型表达式&整型表达式
    左到右
    双目运算符
    9
    ^
    按位异或
    整型表达式^整型表达式
    左到右
    双目运算符
    10
    |
    按位或
    整型表达式|整型表达式
    左到右
    双目运算符
    11
    &&
    逻辑与
    表达式&&表达式
    左到右
    双目运算符
    12
    ||
    逻辑或
    表达式||表达式
    左到右
    双目运算符
    13
    ?:
    条件运算符
    表达式1? 表达式2: 表达式3
    右到左
    三目运算符
    14
    =
    赋值运算符
    变量=表达式
    右到左

    /=
    除后赋值
    变量/=表达式

    *=
    乘后赋值
    变量*=表达式

    %=
    取模后赋值
    变量%=表达式

    +=
    加后赋值
    变量+=表达式

    -=
    减后赋值
    变量-=表达式

    <<=
    左移后赋值
    变量<<=表达式

    >>=
    右移后赋值
    变量>>=表达式

    &=
    按位与后赋值
    变量&=表达式

    ^=
    按位异或后赋值
    变量^=表达式

    |=
    按位或后赋值
    变量|=表达式

    15
    ,
    逗号运算符
    表达式,表达式,…
    左到右
    从左向右顺序运算
    以下部分错误:

    结合性
    () [] -> . ++(后缀自增) --(后缀自减)
    left to right
    ! ~ ++(前缀自增) --(前缀自减) + - * sizeof(type)
    right to left
    * / %

      

      

      
    left
    to
    right
    + -
    << >>
    < <= > >=
    == !=
    &
    ^
    |
    &&
    ||
    ? : (条件运算)
    right to left
    = += -= *= /= %= &= ^= |= <<= >>=

    left to right
    接下来是算术运算符,*、/、%的优先级当然比+、-高了。
    移位运算符紧随其后。
    其次的关系运算符中,< <= > >=要比 == !=高一个级别,不大好理解。
    所有的逻辑操作符都具有不同的优先级(单目运算符除外,!和~)
    逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。
    跟在其后的&&比||高。
    接下来的是条件运算符,赋值运算符及逗号运算符。
    在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及逗号运算符。
    &&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && b; &&运算符的左边位为0,则右边表达式b就不再判断。
    在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。
    逗号表达式则规定从左到右依次进行求值。
    展开全文
  • 表中内容第一列运算符 第二列运算顺序 从上往下依次递减优先级 如下表所示: () [] -> . 左至右 ! ~ ++ -- + - * (type) sizeof 

    表中内容第一列运算符 第二列运算顺序 从上往下依次递减优先级

    如下表所示:

    () [] -> .                                                                               左至右
    ! ~ ++ -- + - * (type) sizeof                                              右至左
    * / %                                                                                   左至右
    + -                                                                                       左至右
    << >>                                                                                 左至右
    < <= > >=                                                                          左至右
    == !=                                                                                  左至右
    &                                                                                         左至右
    ^                                                                                          左至右
    |                                                                                          左至右
    &&                                                                                      左至右
    ||                                                                                          左至右
    ?:                                                                                         左至右
    = += -= *= /= %= &= ^= |= <<= >>=                                右至左
    ,                                                                                            右至左


    ############################################

    迷途下运维学习C程序语言笔记

    摘自:C程序语言设计

    转载请注明出处

    展开全文
  • c语言运算顺序

    2012-03-12 18:51:18
    怎么才能记住c语言的运算符的优先级顺序呢? 运算符分为4大类:   其中,运算符数量多,运用谐音法,记忆优先级

    怎么才能记住c语言的运算符的优先级顺序呢?

    运算符分为4大类:

     

    其中,运算符数量多,运用谐音法,记忆优先级。

    展开全文
  • C语言优先级运算顺序

    千次阅读 2015-09-16 12:16:53
    2、Order of Evaluation运算顺序  和其他语言一样,C语言也没有明确一个操作符的操作数们的计算顺序(除了&&,||,?:和,),例如在表达式: x = f() + g()  f()和g()的运算顺序并没有明确规定,f()可能在g...
    1、操作符的优先级


    2、Order of Evaluation运算顺序
        和其他语言一样,C语言也没有明确一个操作符的操作数们的计算顺序(除了&&,||,?:和,),例如在表达式:
    x = f() + g()
        f()和g()的运算顺序并没有明确规定,f()可能在g()之前运算,也可能在之后。因此,如果f()或者g()改变了另一个表达式也会用到的一个变量,那么,x的值会依赖于表达式的运算顺序,中间结果会存放在临时变量中,最终导致了一个特殊的顺序。

        printf("%d %d\n", ++n, power(2, n));
        这个表达式的结果会根据不同的编译器产生不同的值,因为++n和power(2, n)并不确定那个表达式先计算,为了解决这个问题,可以采用以下方法:
        ++n;
        print("%d %d\n", n, power(2, n));

        函数调用、嵌入式赋值声明和自加自减操作符都会产生副作用----一些变量被表达式运算结果的衍生物改变,在引入副作用的表达式中,就会产生依靠运算顺序的结果,例如:
        a[i] = i++;
        这种情况下,编译器会产生中断,并根据中断产生运算结果,根据不同的编译器,产生的中断不同,所以运算的结果也会不同。而标准协议故意把这些不明确的情况遗留下来。当表达式中的副作用产生时会把判断力交给编译器,因为最好的运算顺序非常依赖计算机的结构。虽然标准明确了所有参数的副作用在函数调用前发生作用,但是对于printf没有什么帮助。
        教训:在任何一个语言中,写出一个依赖运算顺序的程序是非常糟糕的。自然地,你需要了解什么是可以避免的,如果你不知道在各种机器上它们是怎么做的,你就不会尝试去利用一些特殊的执行操作。
    展开全文
  • C语言运算符及优先级

    2017-05-24 20:13:05
    分类和级别编辑 C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用...而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) ||
  • C语言之运算符优先级

    2019-08-01 10:40:32
    由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。 优先级从上到下依次递减,最...
  • C语言的运算符优先级

    2019-12-20 19:10:58
    |优先级顺序| 运算符的种类 | |附加说明| |结合方向| |-1-|-一元运算符-| 逻辑非!求反- ++ – sizeof 从右到左 |2 | 算术运算符 | * / % 高于+ - 从左到右 |3| 关系运算符 | < ...
  • 其中提到C语言的45个运算符,按照表中从上到下的顺序优先级依次降低,表中位于同一行的运算符优先级相同。 其实C语言运算运算符可以划分为4类。 第一类是根本不真正运算的运算符,如()、[]、->(取结构体...
  • C语言的运算符主要有以下几种:(优先级按照先后顺序) 1、指针运算符、对象操作符、数组下标、括号; 2、单目运算符; 3、双目运算符;(先乘除取余、后加减、再移位) 4、关系运算符;(先大小,后相等) 5、取位...
  • 在表达式中,各运算对象参与运算的先后顺序不仅要遵守运算符优先级的规定,还有运算符结合性的制约,以便确定运算对象的执行顺序。这种结合性是其他语言没有的。各种运算符的优先级从高到低的顺序如图5.1所示。 以上...
  • 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。一级运算符:标识,常量,字符串文字量,优先级提升表达式最优先执行。二...
  • C语言符号优先级

    2019-02-06 22:19:38
    C语言符号优先级, 描述符号之间运算的先后顺序
  • c语言运算符优先级

    2019-02-17 16:50:08
    c语言运算符优先级1;同一个优先级运算顺序根据结合性确定运算顺序
  • c语言表达式的运算顺序

    千次阅读 2017-07-18 20:54:16
    C语言中表达式的运算顺序优先级和结合性决定。 1.先按运算符优先级运算。2.如果相邻若干个运算符优先级相同,则按结合方向来运算。 比如:1+2-3*4的运算为:有优先级先做*运算,3*4得到12;表达式为1+2-12,...
  • 运算顺序 首先运算分成两类 算术运算 先看优先级优先级高的先计算。 同等优先级相同的,从左往右计算。 赋值运算 很简单从右边向左边算 听起来没感觉,看几个列子就知道了。 1 变量类型自动转化产生的问题 变量...
  • c语言中表达式的运算顺序

    万次阅读 多人点赞 2016-10-25 20:31:36
    c语言中表达式的运算顺序优先级和结合性决定。 1.先按运算符优先级运算。2.如果相邻若干个运算符优先级相同,则按结合方向来运算。 比如:1+2-3*4的运算为:有优先级先做*运算,3*4得到12;表达式为1+2-12,算数...
  • 可以通过()控制表达式运算顺序,()优先级最高 从右向左结合性的只有赋值运算符,三目运算符,单目运算符 优先级:算数运算符>关系运算符>逻辑运算符 优先级 ...
  • 运算符优先级不是运算优先级,而是结合性优先级,意指:高优先级的运算符所结合的...优先级决定运算符和哪些子表达式结合,表达式在取值时,按照递推结合,递归返回的顺序运算,所以编译器会先处理优先级低的运算符。
  • 但是这样想就和书后面的运算顺序还有老师的说法矛盾了,&&运算符的优先级很低,所以求助大佬,这个该怎么理解。![图片](https://img-ask.csdn.net/upload/201710/10/1507609542_265899.jpg)![图片]...
  • C语言运算符优先级

    2019-05-27 13:12:02
    初级运算符( )、[ ]、->、. 高于 单目运算符 高于 算数运算符(先乘除后加减) 高于 关系运算符 高于 逻辑运算符(不包括!) 高于 条件运算符 高于 赋值运算符 高于 ...同一优先级的运算符,运算次序由结合方向...
  • c语言运算

    2015-07-03 15:28:03
    c程序运算符优先等级顺序;...在计算机等级考试中经常会出现关于优先级类似的题目,也经常有同学问道关于C语言运算符优先级的问题。下面通过表格的形式,将常见的运算符的优先级别展现给大家,方便大家查阅
  • C语言优先级

    千次阅读 2020-02-09 14:40:27
    c语言运算顺序十分重要,经常记也经常忘,为了好找,copy了一份 C语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下: 第1优先级:各种括号,如()、[]等、成员运算符 . ; 第2优先级:所有单目...
  • 考察运算符“++”在变量之前、变量之后的运算机制,即是先赋值/还是先自增*(p++)、*(++p)、*(p+1)之间的区别后面两项主要是考察:取值运算与自增运算优先级;(自增运算>取值运算)*p++与*(p++)——>没有区别*...
  • 考点: 函数printf()的执行机制:参数按照从右至左的顺序入栈,在调用时出栈;...后面两项主要是考察:取值运算与自增运算优先级;(自增运算&gt;取值运算)  *p++与*(p++)——&gt;没有区别  *++...
  • 下面按优先级从高到低的顺序总结一下各种运算符,每一条所列的各运算符具有相同的优先 级,对于同一优先级的多个运算符按什么顺序计算也有说明,双目运算符就简单地用“左结 合”或“右结合”来说明了。和指针有关的...
  • C语言常用运算符及优先级 需要注意以下几点: 1.如果运算量不同类型,结果返回类型顺序:char–>int–>float–>double 2.取余%只用于整型量计算。 3.乘号*不能省略。 4.强制类型转换时要按从小到大的顺序...
  • 按从左到右的顺序|||逻辑NOT 最高 下来是位运算 然后是剩下的逻辑运算+-*/% 都属于算术运算符;*/% 优先运算 +-次之 这里还有一个强制类型转换运算符优先级比算术运算符高2.5+7%3*(int)(2.5+4.7)%2/4 2.5+7%3*(int)...
  • 括号成员第一;... //注意顺序:优先级(||) 低于 优先级(&&) 条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多! 逗号运算级最低! //逗号运算符优先级最低
  • 不同的顺序,惊人的结果C语言的运算符高斯求和的例子 C语言的运算符 在C语言中,有很多的运算符,来支撑C语言强大的灵活性。算术运算符(+)、关系运算符(<)、逻辑运算符(&&)、位运算符(&)、赋值运算符...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 330
精华内容 132
热门标签
关键字:

c语言运算顺序优先级

c语言 订阅