C comparando char con advertencia "\ n": comparación entre puntero y entero

Tengo la siguiente parte del código C:

char c;
int n = 0;
while ( (c = getchar()) != EOF ){
    if (c == "\n"){
        n++;
    }
}

Durante la compilación, el compilador me dice.

warning: comparison between pointer and integer [enabled by default]

La cosa es que si para sustituir."\n" con'\n' No hay advertencias en absoluto. ¿Alguien puede explicarme la razón? Otra cosa extraña es que no estoy usando punteros en absoluto.

Soy consciente de las siguientes preguntas.

advertencia: comparación entre puntero y entero [habilitado de forma predeterminada] en cadvertencia: comparación entre puntero y entero en C

pero en mi opinión no están relacionados con mi pregunta.

PD. Si en lugar dechar c habráint c todavía habrá advertencia.

Respuestas a la pregunta(2)

Su respuesta a la pregunta