Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• Son valores que las funciones requieren en casos específicos para realizar una tarea
determinada y se identifican como variables.
• Comúnmente se identifican dos tipos de parámetros:
• Parámetros formales:
• Son aquellos que se especifican en el prototipo y definición de la función, solo es
necesario especificar el tipo de dato (tip_dat) y el nombre o identificador del parámetro
(par).
• Parámetros actuales:
• Son aquellos que se especifican en la llamada o invocación a una función, siendo solo
necesario especificar el nombre del parámetro o su valor directamente.
Paso de parámetros.
• Significa que lo transferido no son los valores, sino las direcciones de las
variables que contienen esos valores, con lo cual los parámetros actuales
pueden verse modificados. (Sierra, 2007).
• Cuando se llama a una función, los argumentos especificados se pasan por
valor, excepto los arreglos que se pasan por referencia, ya que el nombre del
arreglo es un puntero a dicho arreglo.
Para pasar una variable por referencia, podemos utilizar
una de las dos formas siguientes: (Sierra, 2007).
• Un puntero apunta hacia un valor específico de cierto tipo de dato, lo que significa
que la variable estaría apuntando hacia un tipo de dato en específico.
Cuando una variable se declara se asocian tres atributos: su nombre, su tipo y su dirección de memoria en
hexadecimal
int n=40;
0x22fe4c
cout<<n; // imprimirá 40
n 40 cout<<&n; // imprimirá la posición de memoria de n 0x22fe4c
int
https://www.youtube.com/watch?v=YqoV6UMQEcE
Direcciones de memoria 100 101 102 103 104
40 Ejemplo
int n=40;
n
puntero_n n
puntero_n n
La Dirección de memoria
Por ejemplo la siguiente definición de datos y
pensando que inician en la dirección de memoria
200
http://www.it.uc3m.es/abel/as/DSP/M2/Pointers_es.html#all_data_has_an_address
La indirección de memoria
• Para utilizar una variable puntero, esta primero debe ser declarada, utilizando el siguiente
formato:
• tip_dat *nom_var; // se le agrega un * al nombre de la variable
• Operadores
• * : acceso al contenido ( otro uso del *, ya que también nos sirve para declarar la variable
tipo puntero)
• Una vez declarada una variable tipo puntero, a esta se le puede asignar una
dirección de memoria por medio de un operador denominado "operador de
dirección (&)", una vez asignada la dirección a una variable puntero,
enseguida se podría accesar y visualizar el valor que está contenido en la
dirección que le fue asignada al puntero, utilizando para esto un "operador
de indirección (*) .
Ejemplos
• //Puntero ejemplo 1
• #include <iostream>
• #include <conio.h>
• int n; //variable tipo entero ocupa 4 bytes
• using namespace std;
• int main(){
• cout<<“Valor de n “<<n<<endl ;
• cin>>n;
• cout<<"\n\n\nValor que capturaste en n "<<n;
• cout<<"\n\nDireccion de n "<<&n <<endl; //& es el operador de dirección
• getch();
• }
• //Puntero ejemplo 2 Crear una variable tipo apuntador
• #include <iostream>
• #include <cstdlib>
• #include <conio.h>
• float p; //variable tipo entero ocupa 4 bytes
• float *apuntador=&p; // Crea un apuntador a una dirección (posición) de memoria de la variable p //
• using namespace std;
• int main(){
• cout<<"Da un numero para p ";
• cin>>*apuntador; //p
• cout<<"\n\n\nValor que capturaste en p "<<p;
• cout<<"\n\nDireccion de p "<<&p <<endl;
• cout<<“Valor vatiable *apuntador "<<*apuntador<<endl;
• getch();
• }
Intercambia valores de a y b
• Si a=10 y b=20; entonces al intercambiar los valores de a y b , a será = 20 y
b=10
#include <iostream>
using namespace std;
void intercambia(int x, int y){ Función intercambia
int z; z toma el valor de a que es 10
z=x; x toma el valor de b que es 20
x=y; y tomará el valor de z que es 10
y=z; z=10
}
x=20
int main(){
int a=10,b=20; y=10
cout<<"Valor de a "<<a<<endl; Cuando regresa la función imprimirá el valor de
cout<<"Valor de b "<<b<<endl; a ya intercambiada que es 20 y
intercambia(a,b); b sería 10.
cout<<"Valor de a al intercambiarla "<<a<<endl; Compilarlo y vea si hace el intercambio
cout<<"Valor de b al intercambiarla "<<b<<endl;
}
Punteros reglas de uso
• El símbolo * se usa para DEFINIR un tipo puntero
• El símbolo & se usa para indicar la dirección de una variable
• El símbolo * se usa para ACCEDER al valor del puntero
• El símbolo & se usa en la invocación de funciones, de forma que se pone delante de los parámetros de
Entrada/salida
• Cuando un parámetro es de Entrada /salida en el prototipo y cabecera se indica con un se indica con un tipo
puntero, esto es, poniendo un * delante del nombre
• En el cuerpo de la función los argumentos que son funciones se USAN con un * delante
• Los & solo se usan en el programa principal
• Los * solo se usan en las funciones.