Array Assignment

Deixe-me explicar com um exemplo

#include <iostream>

void foo( int a[2], int b[2] ) // I understand that, compiler doesn't bother about the
                               // array index and converts them to int *a, int *b
{
    a = b ;  // At this point, how ever assignment operation is valid.

}

int main()
{
    int a[] = { 1,2 };
    int b[] = { 3,4 };

    foo( a, b );

    a = b; // Why is this invalid here.

    return 0;
}

É porque, o array decai para um ponteiro quando passado para uma funçãofoo(..), a operação de atribuição é possível. E emmain, é porque eles são do tipoint[] que invalida a operação de atribuição. Nãoa,b em ambos os casos significa o mesmo? Obrigado

Edit 1:

Quando faço isso em uma funçãofoo, está atribuindo ob's localização do elemento inicial paraa. Então, pensando nisso, o que fez os desenvolvedores de linguagem não fazerem o mesmo emmain(). Quer saber o motivo.

questionAnswers(3)

yourAnswerToTheQuestion