À l'aide de l'opérateur d'égalité == pour comparer deux chaînes de caractères pour l'égalité dans les C

int main (int argc, **argv)
{
       if (argv[1] == "-hello")
            printf("True\n");
       else
            printf("False\n");
}
# ./myProg -bonjour 
Faux 

Pourquoi? Je me rends compte strcmp(argv[1], "-hello") == 0 retourne vrai... mais pourquoi ne puis-je pas utiliser l'opérateur d'égalité pour comparer deux chaînes C?

Puisque vous êtes en insistant sur le fait de la question est un C question, j'ai remplacé le code C++ avec du code C. Si vous insistez sur std::cout, I insister sur un C++ tag.
Sûrement cette question est une copie exacte.

OriginalL'auteur Carlo del Mundo | 2010-10-14