![]() |
![]() |
8.7) Punteros y vectores.
|
Las razones por las que el paso de parámetros de vectores
a funciones siempre se realiza por referencia son:
![]() |
Un vector contiene una gran cantidad de datos. Sería muy ineficiente si cada vez que se pasa un vector como argumento a una función ésta realizase una copia en memoria del contenido de todos los elementos del vector. |
![]() |
Un vector se transfiere a una función para que ésta realice unas modificaciones en todos o en algunos de los elementos de dicho vector y deseando que dichos cambios se registren en el vector durante el resto de la ejecución del programa. |
Por estas razones, el lenguaje C asume que un vector siempre
se pasa por referencia. Para conseguir este efecto, C concede un significado
especial a los vectores identificando el nombre de un vector con una dirección
de memoria. De este modo , cada vez que se pasa un vector como argumento
a una función, se está transfiriendo en realidad una dirección
de memoria que representa la localización del primer elemento
del vector.
Operaciones sobre vectores:
Sabiendo
que el nombre de un vector es una dirección de memoria, se puede
aplicar los operadores de dirección e indirección vistos
en el apartado 2.1. Además,
el acceso habitual a un elemento del vector, expresado entre corchetes
([ ]) el índice del elemento correspondiente, es asimismo una combinación
de los operadores & y
*.
![]() |
|
||||||||
![]() |
|
Ejemplo: Veamos algunos
ejemplos de como se reserva la memoria en estos casos: