C ; "" "" . (sort-of infix) (sort-of prefix). , , , , , , .
, && || , , ; . . -> , , , , , (.. &a.b &(a.b), (&a).b), , .
:
- ( , , )
- (
a[i]) - (
a->b, d.c) - (
foo(a,b)) - (
a++, b--) - ( C99 -
(int []) {1, 2, 3})
, .
:
- (
(int) foo) - (
sizeof foo, sizeof (int)) - (
-5) - (
+1) - (
!expr) - (
~byte) - (
&foo) - (
*ptr) - (
++foo, --bar)
, , , .
:
- (
a * b, c / d) - (
a + b, c - d) - (
a << b, val >> 2) - (
a < b, c >= d) - (
a == b, c != d) - (
a & b, c | d, e ^ f)
, .
In addition to these groups, you also have logical operator expressions ( &&and ||), conditional expressions ( a ? b : c) that have lower priority than binary expressions, assignment expressions ( a = b, c += d), sequential expressions ( a, b, c), and constant expressions ( int a[42], case 5:) that are different from literals classified by postfix expressions.
source
share