C's operators closely mirror those of most other C-family languages, with a few C-specific behaviors worth knowing.
int a = 7, b = 2;
printf("%d\n", a / b); // 2 — integer division truncates toward zero
printf("%f\n", a / (float)b); // 3.500000 — cast forces floating-point division
printf("%d\n", a % b); // 1 — remainder, only valid for integers
int x = 5, y = 10;
printf("%d\n", x == y); // 0 (false) — relational operators return an int: 0 or 1
printf("%d\n", x < y && y < 20); // 1 (true) — logical AND
Integer division always truncates the fractional part rather than rounding — 7 / 2 is 3, not 3.5 — because both operands are integers, so C never produces a fractional result unless you explicitly cast one operand to float or double first.
C has no true boolean type in older standards; relational and logical expressions simply evaluate to the int values 0 (false) or 1 (true), and any non-zero value is treated as true in a condition. (C23 changes this — see the "Modern C Features" chapter for the built-in bool type.) Logical && and || short-circuit exactly like in many other languages: the right operand isn't evaluated if the left one already determines the result.