C Vergleichen von Zeichen mit der Warnung "\ n": Vergleich zwischen Zeiger und Ganzzahl

Ich habe den folgenden Teil des C-Codes:

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

Während der Kompilierung teilt mir der Compiler mit

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

Die Sache ist, wenn zu ersetzen"\n" mit'\n' Es gibt überhaupt keine Warnungen. Kann mir jemand den Grund erklären? Eine andere seltsame Sache ist, dass ich überhaupt keine Zeiger benutze.

Mir sind die folgenden Fragen bekannt

Warnung: Vergleich zwischen Zeiger und Ganzzahl [standardmäßig aktiviert] in cWarnung: Vergleich zwischen Zeiger und Ganzzahl in C

aber meiner Meinung nach haben sie nichts mit meiner Frage zu tun.

PS. Wenn stattchar c es wird____gebenint c Es wird immer noch eine Warnung geben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage