Si se escribe una función de C++ comoDiferencia entre [corchetes] y * asterisco
void readEmStar(int *arrayOfInt) { }
vs C++ función como:
void readEmSquare(int arrayOfInt[]) { }
¿Cuál es la diferencia entre el uso de [corchetes] vs. * asterisco, y ¿alguien tiene una guía de estilo sobre cuál es preferible, suponiendo que son equivalentes al compilador?
Para completar, un ejemplo
void readEmStar(int *arrayOfInt, int len)
{
for(int i = 0 ; i < len; i++)
printf("%d ", arrayOfInt[i]) ;
puts("");
}
void readEmSquare(int arrayOfInt[], int len)
{
for(int i = 0 ; i < len; i++)
printf("%d ", arrayOfInt[i]) ;
puts("");
}
int main()
{
int r[] = { 2, 5, 8, 0, 22, 5 } ;
readEmStar(r, 6) ;
readEmSquare(r, 6) ;
}
Dado que las matrices y punteros son bastante similares en C++ quizás podría agregar un poco rápido sobre la diferencia (pila vs. montón, etc.) – tloach
en readEmSquare, marcando sizeof (arrayOfInt) devolverá 4, es un puntero – bobobobo
Vea mi nota sobre cuándo usa char [] sin inicialización. –