summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/c_prec.txt
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/CONTRIB/SNIP/c_prec.txt')
-rwxr-xr-xreference/C/CONTRIB/SNIP/c_prec.txt74
1 files changed, 74 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/c_prec.txt b/reference/C/CONTRIB/SNIP/c_prec.txt
new file mode 100755
index 0000000..1751853
--- /dev/null
+++ b/reference/C/CONTRIB/SNIP/c_prec.txt
@@ -0,0 +1,74 @@
+ Operator Precedence and Associativity Rules in C / C++
+ ============================================================================
+ :: scope resolution (C++, e.g. name::member) left-to-right
+ :: global (C++, e.g. ::name)
+ ----------------------------------------------------------------------------
+ ( ) function call left-to-right
+ [ ] array element
+ . class, structure or union member
+ -> pointer reference to member
+ :: scope access / resolution (C++)
+ sizeof size of object in bytes
+ sizeof size of type in bytes
+ ----------------------------------------------------------------------------
+ ++ post increment (lvalue++) right-to-left
+ ++ pre increment (++lvalue)
+ -- post decrement (lvalue--)
+ -- pre decrement (--lvalue)
+ ~ bitwise complement
+ ! logical not
+ - unary minus
+ + unary plus
+ & address of
+ * contents of
+ new create object (C++)
+ delete destroy object (C++)
+ delete[] destroy array (C++)
+ (type) cast to type
+ ----------------------------------------------------------------------------
+ .* member pointer (C++) left-to-right
+ ->* pointer reference to member pointer (C++)
+ ----------------------------------------------------------------------------
+ * multiply left-to-right
+ / divide
+ % remainder
+ ----------------------------------------------------------------------------
+ + add left-to-right
+ - subtract
+ ----------------------------------------------------------------------------
+ << bitwise left shift left-to-right
+ >> bitwise right shift
+ ----------------------------------------------------------------------------
+ < scalar less than left-to-right
+ <= scalar less than or equal to
+ > scalar greater than
+ >= scalar greater than or equal to
+ ----------------------------------------------------------------------------
+ == scalar equal left-to-right
+ != scalar not equal
+ ----------------------------------------------------------------------------
+ & bitwise and left-to-right
+ ----------------------------------------------------------------------------
+ ^ bitwise exclusive or left-to-right
+ ----------------------------------------------------------------------------
+ | bitwise or left-to-right
+ ----------------------------------------------------------------------------
+ && logical and left-to-right
+ ----------------------------------------------------------------------------
+ || logical inclusive or left-to-right
+ ----------------------------------------------------------------------------
+ ? : conditional expression right-to-left
+ ----------------------------------------------------------------------------
+ = assignment operator right-to-left
+ also += -= *= /= %=
+ &= ^= |= >>= <<=
+ ----------------------------------------------------------------------------
+ , sequential expression left-to-right
+ ----------------------------------------------------------------------------
+
+All of the operators in this table can be overloaded (C++) except:
+
+ . C++ direct component selector
+ .* C++ dereference
+ :: C++ scope access/resolution
+ ?: Conditional