zoukankan      html  css  js  c++  java
  • C++运算符优先级

    PrecedenceOperatorDescriptionExampleAssociativity
    1 () [] -> . :: ++ -- Grouping operator Array access Member access from a pointer Member access from an object Scoping operator Post-increment Post-decrement (a + b) / 4; array[4] = 2; ptr->age = 34; obj.age = 34; Class::age = 2; for( i = 0; i < 10; i++ ) ... for( i = 10; i > 0; i-- ) ... left to right
    2 ! ~ ++ -- - + * & (type) sizeof Logical negation Bitwise complement Pre-increment Pre-decrement Unary minus Unary plus Dereference Address of Cast to a given type Return size in bytes if( !done ) ... flags = ~flags; for( i = 0; i < 10; ++i ) ... for( i = 10; i > 0; --i ) ... int i = -1; int i = +1; data = *ptr; address = &obj; int i = (int) floatNum; int size = sizeof(floatNum); right to left
    3 ->* .* Member pointer selector Member pointer selector ptr->*var = 24; obj.*var = 24; left to right
    4 * / % Multiplication Division Modulus int i = 2 * 4; float f = 10 / 3; int rem = 4 % 3; left to right
    5 + - Addition Subtraction int i = 2 + 3; int i = 5 - 1; left to right
    6 << >> Bitwise shift left Bitwise shift right int flags = 33 << 1; int flags = 33 >> 1; left to right
    7 < <= > >= Comparison less-than Comparison less-than-or-equal-to Comparison greater-than Comparison geater-than-or-equal-to if( i < 42 ) ... if( i <= 42 ) ... if( i > 42 ) ... if( i >= 42 ) ... left to right
    8 == != Comparison equal-to Comparison not-equal-to if( i == 42 ) ... if( i != 42 ) ... left to right
    9 & Bitwise AND flags = flags & 42; left to right
    10 ^ Bitwise exclusive OR flags = flags ^ 42; left to right
    11 | Bitwise inclusive (normal) OR flags = flags | 42; left to right
    12 && Logical AND if( conditionA && conditionB ) ... left to right
    13 || Logical OR if( conditionA || conditionB ) ... left to right
    14 ? : Ternary conditional (if-then-else) int i = (a > b) ? a : b; right to left
    15 = += -= *= /= %= &= ^= |= <<= >>= Assignment operator Increment and assign Decrement and assign Multiply and assign Divide and assign Modulo and assign Bitwise AND and assign Bitwise exclusive OR and assign Bitwise inclusive (normal) OR and assign Bitwise shift left and assign Bitwise shift right and assign int a = b; a += 3; b -= 4; a *= 5; a /= 2; a %= 3; flags &= new_flags; flags ^= new_flags; flags |= new_flags; flags <<= 2; flags >>= 2; right to left
    16 , Sequential evaluation operator for( i = 0, j = 0; i < 10; i++, j++ ) ... left to right

     来源:http://www.cppblog.com/aqazero/archive/2012/06/02/8284.html

  • 相关阅读:
    【GPS】Android O平台如何设置SUPL地址,以及GPS三个配置文件的优先级分析
    【GPS】gps.conf文件解读
    【GPS】SAP测试GPS模块拿不到sensor数据
    Linux系统安装Samba共享服务器详解及安装配置
    CentOS 6.5 编译安装 LNMP环境
    linux禁止root用户直接登录
    Linux下安装配置日志服务器
    Windows系统安装Oracle 11g客户端
    Linux系统zabbix_agentd客户端安装与配置
    Redhat6.5——解决yum功能不能正常使用
  • 原文地址:https://www.cnblogs.com/Miami/p/3006503.html
Copyright © 2011-2022 走看看