Está en la página 1de 19

Programación

Funciones
Escuela Politécnica nacional
Período 2022-B
Prof. Pablo Barbecho

PROGRAMACIÓN DEPARTAMENTO DE ELECTRÓNICA, TELECOMUNICACIONES Y REDES DE INFORMACIÓN 1


Agenda
1. Problemas con Funciones
2. Funciones: Paso de parámetros por valor
3. Funciones: Paso de parámetros por referencia
4. Ejercicios

PROGRAMACIÓN DEPARTAMENTO DE ELECTRÓNICA, TELECOMUNICACIONES Y REDES DE INFORMACIÓN 2


Función - Definición
• Es un segmento de código formado por una serie de instrucciones
que cumplen una tarea específica.
• Cada función en C tiene un valor de retorno.
• El valor de retorno puede ser almacenado en un variable o ser
utilizado en una expresión.

Datos de Entrada Función Datos de salida


Funciones
Una función debe ser declarada, definida e invocada.

Declarada Antes de la función main ()

Definida Después de main ()

Invocada / Llamada Dentro de main ()


Dentro de otra función
Funciones – Problemas ID variables

2
Funciones – Problemas ID variables

2
Funciones: Paso de parámetros por valor
Existen funciones que no pueden ser implementadas con el paso de
parámetros por valor como:

• Funciones que generan más de un resultado. (estructuras)


• Funciones que modifican el valor de variables declaradas en el programa
principal o en la función que realiza la llamada.
Funciones: Paso de parámetros por referencia
Todas las variables ocupan uno o más bytes en la memoria (según el tipo de
dato) y tienen asignada una dirección de memoria.
Memoria
int num = 2; 2 0x23
…… 0x24
….. 0x25 Dirección de
….. memoria
…..
La variable num entonces:
• Tiene el valor 2
• ocupa la dirección de memoria -> 0x23
Funciones: Paso de parámetros por referencia
El paso de parámetros por referencia consiste en pasar a la función otro tipo de
información: en lugar de pasar el “valor” de las variables, se pasa la “dirección de
memoria” de estas variables, es decir, el lugar en la memoria donde se almacenan
sus valores.
Por ejemplo, en vez de retornar el valor de 2 (paso de parámetros por
valor), el paso de parámetros por referencia pasa la dirección de memoria donde se
encuentra el valor de num, es decir 0x23.
Funciones: Punteros
• Un puntero es una variable que almacena una dirección de memoria de otra variable.
• En el lenguaje de programación C, se pueden declarar variables de tipo puntero.
• Entre otros usos, los punteros se utilizan para el paso de parámetros por referencia.

Una variable del tipo puntero, se dice que “apunta” al valor almacenado en la dirección de
memoria que guarda el puntero.

Variable Puntero
int numero int *punteroNumero

6 0x23
Dirección en memoria 0x23 0x24
Funciones: Punteros
Una variable del tipo puntero, se dice que “apunta” al valor almacenado en la
dirección de memoria que guarda el puntero.

0x23 0x23 0x23


0x24 0x24 0x24
0x25

CODIGO CODIGO CODIGO


Funciones: Punteros
Sintaxis
tipo *nombreVariable;

nombreVariable : Es el nombre de la variable de tipo puntero.


tipo ∗ : Indica que la variable nombreVariable es de tipo puntero y que apunta a un
dato del tipo especificado en tipo.

Hay dos operadores relacionados con los punteros:

El operador de referencia &


El operador de indirección *
Funciones: Operador de referencia &
El operador de referencia & se puede utilizar delante de cualquier variable y
proporciona la dirección de memoria de dicha variable.

La expresión c=&a retorna la dirección de memoria


de a (0x23).
Funciones: Operador de indirección *
El operador de indirección * solo se puede utilizar delante de una variable de
tipo puntero y proporciona el contenido de la dirección de memoria que
almacena dicha variable, es decir, el dato (valor) al cual “apunta” el puntero.

La expresión int *c define un tipo puntero que


apunta a un dato del tipo entero.
Funciones: Punteros
De manera general, los operadores de un puntero se utilizan:

1. & à Para obtener la dirección de memoria de la variable

&variable

2. * à Para obtener el valor que se encuentra en la dirección de memoria


*nombre_punter

*
Note que el operador será utilizado entonces para declarar un puntero y a la vez
para obtener el valor que se encuentra en la dirección de memoria
Ejemplo 1 Punteros
Variable del tipo puntero
Obtiene la dirección de memoria
de numero.

Imprime el contenido (valor) del la


dirección de memoria de numero.

Imprime el contenido de la variable


tipo puntero, es decir la dirección
de memoria de numero.

Run 1
%p muestra el contenido de una variable tipo puntero
Ejemplo 1 Punteros

Memoria
5
……
0x23

…..
…..
Ejemplo 2 Punteros

Run 1
Ejercicio en clase
Utilizando funciones cree dos programa que permitan intercambiar 2 valores de dos
variables. El programa solicitará al usuario que ingrese los 2 valores a intercambiar y
luego en un función intercambiará los valores de las variables (puede imprimir el
resultado dentro de la función). Debe crear dos programas donde se tenga:

1. Programa 1: Paso de parámetros por valor

2. Programa 2: Paso de parámetros por referencia

También podría gustarte