Expressions in the programming language C have such an under-specified semantics that one might expect them to be non-deterministic. However, with the help of a mechanised formalisation, we have shown that the semantics’ additional constraints actually result in a large class of C expressions having only one possible behaviour.