Interesting, I didn't fully realise that. That it's arbitrary is annoying, I clearly had tried to rationalise it to myself! Thanks for the comments, will get around to amending
int, as all other integer types except char, is indeed signed by default.
Aside: signedness semantics of char is implementation-defined. However, the type char itself is always distinct from both signed char and unsigned char.
I'm pretty sure this implies int as a declaration is always signed, but tbh I'm not completely sure!