┌─────────────────────┬─────────────────────────┬────────────────┬──────────────┐ │       Syntax        │          Name           │ Type of Result │Associativity │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │( expr )             │Grouping                 │Type of expr    │N/A           │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │$expr                │Field reference          │String          │N/A           │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │lvalue ++            │Post-increment           │Numeric         │N/A           │ │lvalue --            │Post-decrement           │Numeric         │N/A           │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │++ lvalue            │Pre-increment            │Numeric         │N/A           │ │-- lvalue            │Pre-decrement            │Numeric         │N/A           │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr ^ expr          │Exponentiation           │Numeric         │Right         │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │! expr               │Logical not              │Numeric         │N/A           │ │+ expr               │Unary plus               │Numeric         │N/A           │ │- expr               │Unary minus              │Numeric         │N/A           │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr * expr          │Multiplication           │Numeric         │Left          │ │expr / expr          │Division                 │Numeric         │Left          │ │expr % expr          │Modulus                  │Numeric         │Left          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr + expr          │Addition                 │Numeric         │Left          │ │expr - expr          │Subtraction              │Numeric         │Left          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr expr            │String concatenation     │String          │Left          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr < expr          │Less than                │Numeric         │None          │ │expr <= expr         │Less than or equal to    │Numeric         │None          │ │expr != expr         │Not equal to             │Numeric         │None          │ │expr == expr         │Equal to                 │Numeric         │None          │ │expr > expr          │Greater than             │Numeric         │None          │ │expr >= expr         │Greater than or equal to │Numeric         │None          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr ~ expr          │ERE match                │Numeric         │None          │ │expr !~ expr         │ERE non-match            │Numeric         │None          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr in array        │Array membership         │Numeric         │Left          │ │( index ) in array   │Multi-dimension array    │Numeric         │Left          │ │                     │membership               │                │              │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr && expr         │Logical AND              │Numeric         │Left          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr || expr         │Logical OR               │Numeric         │Left          │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │expr1 ? expr2 : expr3│Conditional expression   │Type of selected│Right         │ │                     │                         │expr2 or expr3  │              │ ├─────────────────────┼─────────────────────────┼────────────────┼──────────────┤ │lvalue ^= expr       │Exponentiation assignment│Numeric         │Right         │ │lvalue %= expr       │Modulus assignment       │Numeric         │Right         │ │lvalue *= expr       │Multiplication assignment│Numeric         │Right         │ │lvalue /= expr       │Division assignment      │Numeric         │Right         │ │lvalue += expr       │Addition assignment      │Numeric         │Right         │ │lvalue -= expr       │Subtraction assignment   │Numeric         │Right         │ │lvalue = expr        │Assignment               │Type of expr    │Right         │ └─────────────────────┴─────────────────────────┴────────────────┴──────────────┘ Each expression shall have either a string value, a numeric value, or both. Except as stated for specific contexts, the value of an expression shall be implicitly converted to the type needed for the context in which it is used. A string value shall be converted to a numeric value either by the equivalent of the following calls to functions defined by the ISO C standard: