Asignación de matriz
Dejame explicarte con un ejemplo
#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;
}
Es porque, la matriz decae a un puntero cuando se pasa a una funciónfoo(..)
, la operación de asignación es posible. Y enmain
, ¿es porque son del tipoint[]
que invalida la operación de asignación. Noa,b
en ambos casos significa lo mismo? Gracias
Edit 1:
Cuando lo hago en una funciónfoo
, está asignando elb's
ubicación del elemento inicial aa
. Entonces, pensando en términos de lo que hizo que los desarrolladores de lenguaje no hicieran lo mismo enmain()
. Quiere saber la razón.