Varchar takes up as much space as the characters you put in, plus 2 or 3 bytes overhead.
char fields allways take up as much space as you reserved for them, plus 2 or 3 bytes overhead.
So, a varchar usually takes up less space than a char field.
Reading varchar is just as fast as char,
but updating varchar could be slower becaus of the change in required space in the database file.
But I don't think you'll notice unless you do 100k queries at a time