Por eso, el paso de vectores se hace por referencia. No hace falta marcar nada, simplemente sucede. Se le llama "por referencia" porque se pasa un número entero que permite localizar al vector, y referirse a él.
La implicación de todo esto es que, cuando se cambian las posiciones de un vector, los cambios realizados se mantienen después de volver de la función que lo llamó.
Veamos un ejemplo:
/** @name nombres * @brief Escribe un nombre propio formateado en pantalla * @author jbgarcia@uvigo.es * @date 2013-10-28 */ import std.io; import std.util; import std.charType; void cnvtNombre(char[] s) { s[ 0 ] = toUpperCase( s[ 0 ] ); for(def i = 1; i < size( s ); ++i) { s[ i ] = toLowerCase( s[ i ] ); } return; } char[] nombre = readln( "Dame tu nombre: " ); cnvtNombre( nombre ); println( nombre );
Este programa toma un nombre, y lo convierte, de forma que la inicial pasa a estar en mayúsculas, y el resto de las letras del nombre pasado, en minúsculas. Esto se hace en la función cnvtNombre(), y dado que el vector se pasa por referencia (es el vector de caracteres s en cnvtNombre()), los cambios repercuten en el programa principal (donde el vector se llama nombre), con lo que se puede visualizar el resultado sin problema.
No hay comentarios:
Publicar un comentario