ISO C++ forbids comparaison entre pointeur et entier [-fpermissive]| [c++]

Je suis en train de compiler le code suivant sur Ubuntu (64-bit), avec Code::Blocks 10.05 que les IDE:

#include <iostream>
using namespace std;
int main() {
    char a[2];
    cout << "enter ab ";
    cin >> a;
    if (a == 'ab') //line 7
    {
         cout << "correct";
    }
    return 0;
}

Sur la ligne 7, mon compilateur me donne l'erreur "ISO C++ forbids comparaison entre pointeur et entier [-fpermissive]".

Pourquoi ne pas ce travail? Je sais que je pourrais utiliser un std::string pour contourner le problème, mais je veux comprendre le problème actuel.

notez que 'ab' est un int, alors que "ab" est un tableau de caractères.

OriginalL'auteur Thunfische | 2012-02-14