unary minus: x = -y; z = exp(-w*t); integer vs. floating-point division: 1/3 --->>> 0 1.0/3.0 --->>> 0.3333333 int m = 1, n = 3; double r = m/n; --->>> 0 r = (double)m/n; --->>> 0.3333333 // (double) is a cast r = (int)(r + 1.0); --->>> 1 // (int) is a cast 4 ways to add 1: a = a + 1; a += 1; ++a; a++; 4 ways to subtract 1: a = a - 1; a -= 1; --a; a--; 2 ways to add 5: a = a + 5; a += 5; 2 ways to divide by 5: a = a/5; a /= 5; operators: * / % + - combined with assignment: *= /= %= += -= associativity: a = b + c + d; same as: a = (b + c) + d; a = b = c = d = 0; same as: a = (b = (c = (d = 0))); valid but weird assignment: z = y = 6 + (x = 5 + 7); // now x is 12, y and z are both 18