Was passiert, wenn ich ein int mit einem Pluszeichen nach der Zeichenfolge in printf () hinzufüge

Ich habe den Code wie unten in einem verschleierten Programm gelesen.

Ich frage mich, warum der Compiler mir eine Warnung anstatt eines Fehlers gab, wenn ich so mache. Was soll der Code wirklich tun und warum schlägt der Compiler die Verwendung eines Arrays vor?

#include <stdio.h>
int main()
{
    int f = 1;
    printf("hello"+!f);
    return 0;
}

warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
printf("hello"+!f);
       ~~~~~~~^~~
note: use array indexing to silence this warning
printf("hello"+!f);
              ^
       &      [  ]

Antworten auf die Frage(6)

Ihre Antwort auf die Frage