As long as you define a field as CHAR( 10), it will occupy 10 bytes regardless of whether the data you store reaches 10 bytes.
On the other hand, the length of VARCHAR is variable. If the possible value length of a field is not fixed, we only know that it cannot exceed 10 characters, and it is the most economical to define it as VARCHAR( 10).