Please help me understand this behavior

No it doesn’t, it does this

char c = -1;