C has some fun ones:
a * b;
Is either: a times b if a is a var, or declare a varible b with type a. If a is a typedef.
Also:
some_type b = {a, b, c, d};
Is only valid if some_type is an array or a struct. Which is possibly defined elsewhere in the source.
(I tend to see this syntax in some code bases (some_type) { a, b, c, d }, which is a bit better).