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.