Argumento (informática)

Argumento (informática)

Argumento (informática)

En Ciencias de la computación, un argumento o parámetro es una variable que puede ser recibida por una rutina o subrutina. Una subrutina usa los valores asignados a sus argumentos para alterar su comportamiento en tiempo de ejecución. La mayor parte de los lenguajes de programación pueden definir subrutinas que aceptan cero o más argumentos.

Contenido

Paso de argumentos

Existen cuatro formas de pasar un argumento a una función o procedimiento: por valor, por referencia, por valor-resultado y por nombre.

Paso por valor

El paso de parámetros por valor consiste en copiar el contenido de la variable que queremos pasar en otra dentro del ámbito local de la subrutina, consiste pues en copiar el contenido de la memoria del argumento que se quiere pasar a otra dirección de memoria, correspondiente al argumento dentro del ámbito de dicha subrutina. Se tendrán dos valores duplicados e independientes, con lo que la modificación de uno no afecta al otro.

Paso por referencia

El paso de parámetros por referencia consiste en proporcionar a la subrutina a la que se le quiere pasar el argumento la dirección de memoria del dato. En este caso se tiene un único valor referenciado (o apuntado) desde dos puntos diferentes, el programa principal y la subrutina a la que se le pasa el argumento, por lo que cualquier acción sobre el parámetro se realiza sobre el mismo dato en la memoria.

Paso por valor resultado

Es un tipo poco usado en los lenguajes de programación actuales. Se basa en que dentro de la función se trabaja como si los argumentos hubieran sido pasados por valor pero al acabar la función los valores que tengan los argumentos serán copiados a las variables que pertenecían.

Este tipo puede ser simulado en cualquier lenguaje que permita el paso de valores por referencia de la siguiente forma:

void EjemploValorRes(int& a1, int& a2, int& a3) {
    int aux1 = a1, aux2 = a2, aux3 = a3;
    // código trabajando con aux1, aux2 y aux3
    a1 = aux1; a2 = aux2; a3 = aux3; // Dependiendo del compilador la copia se realiza en un sentido o en el otro
}

Tal y como indica el ejemplo de simulación de valor-resultado, el orden de copia depende del compilador, lo que implica que la misma función pueda dar resultados diferentes según el compilador usado.

Ejemplo de diferencias entre los distintos pasos de parámetros

Aunque se debería ver a simple vista, aquí se exponen unos ejemplos que demuestran las diferencias de estos tipos:

void función(int a, int b) {
    ++a;
    b += 2;
}
int a = 0;
función(a, a);
// ¿Que contiene "a" en este punto?
  • Argumentos pasados por valor: a = 0
  • Argumentos pasados por referencia: a = 3
  • Argumentos pasados por valor-resultado:
    • Si el compilador copia los resultados de derecha a izquierda: a = 1
    • Si el compilador copia los resultados de izquierda a derecha: a = 2

Véase también

Obtenido de "Argumento (inform%C3%A1tica)"

Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • Mujeres en informática — Ada Lovelace. Primera mujer programadora de máquinas computadoras. La preocupación mundial sobre el papel actual y futuro de las mujeres en tareas de computación adquirió más importancia con la aparición de la era de la información. Estas… …   Wikipedia Español

  • Clausura (informática) — En Informática, una clausura es una función que es evaluada en un entorno conteniendo una o más variables dependientes de otro entorno. Cuando es llamada, la función puede acceder a estas variables. El uso explícito de clausuras se asocia con… …   Wikipedia Español

  • Callback (informática) — Saltar a navegación, búsqueda Un callback esta a menudo al mismo nivel del llamado original …   Wikipedia Español

  • Pila (informática) — Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Esta… …   Wikipedia Español

  • Constructor (informática) — El objetivo del constructor es el de inicializar un objeto cuando éste es creado. Asignaremos los valores iniciales así como los procesos que ésta clase deba realizar. Se utiliza para crear tablas de métodos virtuales y poder así desarrollar el… …   Wikipedia Español

  • Semáforo (informática) — Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en …   Wikipedia Español

  • Desbordamiento de búfer — Saltar a navegación, búsqueda En seguridad informática y programación, un desbordamiento de buffer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando se copia una cantidad de datos sobre un área que no es… …   Wikipedia Español

  • Hilary Putnam — Retrato de Putnam. Hilary Whitehall Putnam (nacido el 31 de julio de 1926, en Chicago (Illinois)) es u …   Wikipedia Español

  • Filosofía de la mente — Representación frenológica de las áreas cerebrales en correspondencia con las funciones mentales. La frenología fue uno de los primeros intentos de relacionar funciones mentales con partes específicas del cerebro. La filosofía de la mente se… …   Wikipedia Español

  • Wikipedia:Café (todos) — Atajos WP:CWP:C …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”