Observe o exemplo abaixo no psql.
test=# CREATE TABLE pessoa (
test(# nome character varying(50) not null primary key,
test(# sexo character(1));
CREATE TABLE
Independente dos campos serem criados usando "character varying" ou o seu alias "varchar" os detalhes da tabela no PostgreSQL irá mostra "character varying" e "character", como apresentado abaixo.
test=# \d pessoa

Ambos são tipos que podem armazenar até o número de carecteres correspondente ao valor de "n". Uma tentativa de armazenar um string mais longo que o valor de "n" resultará em um erro, a menos que os caracteres excedentes sejam todos espaços em branco, caso em que serão truncados pelo limite máximo, comportamento requerido pelo Padrão SQL. Caso o string no tipo de dados character (char) seja menor que o limite máximo, restante será completado com espaços em branco. Já o caracter varying (varchar) irá armazenar apenas o tamanho do texto.
POSTGRESQL.ORG