Solidity documentation here says that
Hexadecimal literals that are between 39 and 41 digits long and do not pass the checksum test produce an error.
Do they mean, "Hexadecimal literals that are 40 digits long and do not pass the checksum test produce an error."?
If not, then why does the language include 41 & 39?
Based on this it seems clear that address is always 40 digits long.