SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
Estructuras de Datos                          II-2012                              Prof. Marlene DL


                                           Punteros
Es una variable que contiene la dirección de un dato almacenado en memoria, es decir que apunta
a ese dato. (Badenas, Coltell, Llopis, 2001).

Los punteros contienen como valor una dirección de memoria de otra variable, Un puntero puede
apuntar a cualquier tipo de datos deinidos en C++ o definido por el programador.

Declaración de un puntero:

Sintaxis: tipoDato * identificador o nombre del puntero;

* identifica la declaración del puntero.

int * ptrNum;      // puntero a variables de tipo int

NOTA:
   • El tipo de datos utilizado en la declaración de un puntero debe ser del mismo tipo de datos
      que el de la variable a apuntar.
   • Si un puntero es tipo void, se define un puntero genérico que puede apuntar a variables
      de cualquier tipo, según se le asigne.
   • Al declarar un puntero, (al igual que una variable), su valor no está definido, para evitar un
      uso incorrecto, antes de ser utilizado, se puede inicializar con el valor nulo NULL. Ejemplo:
      int *px = NULL;



Operaciones sobre punteros:

El operador *
Permite acceder al dato apuntado. Ejemplo: si hay un puntero ptrNum, con * ptrNum se accede al
dato apuntado.

El operador &
Obtiene la dirección de memoria de una variable.
Según Badenas, Coltell, Llopis (2001) dada la declaración:
   1    int *px, *py;
   2    int x = 5;
   3
   4    px = &x; // px pasa a contener la dirección de x(px apunta a x).
   5    *px = 10; // x vale 10;
   6    py = px;



La instrucción py = px ; copia el contenido de px sobre py, py tiene la misma dirección que px,
apuntara sobre el mismo dato apuntado por px.
Estructuras de Datos                           II-2012                               Prof. Marlene DL


La instrucción *py = *px; copia el contenido, en este caso un entero, apuntado por px en el
espacio de memoria apuntado por py.

Qué valor tiene *px antes de la instrucción 5?
Qué valor tiene x después e la instrucción 5?
Qué valor tiene *py después de la instrucción 6?

La instrucción py = NULL; hace que py apunte a nada, suele realizarse para señalar que el puntero
no está apuntando a ningún lugar valido, de modo que no se intente acceder a ningún dato con
*py.

El operador =
Asignación

Los operadores == y !=
Permite comprobar si dos punteros apuntan o no al mismo sitio, o corroborar si un puntero está o
no apuntando a nada. Ejemplo:
if (px == NULL)




Referencias Bibliográficas:

Badenas, J. Coltell, O. Llopis, J. (2001). Curso práctico de programación en C y C++. (2da ed).
Castelló de la Plana: Publicacions de la Universitat Jaume I.

Más contenido relacionado

La actualidad más candente

Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
diego MC
 
Reserva y liberación de memoria
Reserva y liberación de memoriaReserva y liberación de memoria
Reserva y liberación de memoria
Jose Telleria
 
TIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVATIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVA
berna29
 
Utp pti_s8_punteros
 Utp pti_s8_punteros Utp pti_s8_punteros
Utp pti_s8_punteros
jcbenitezp
 
Utp pti_s8y9_punteros
 Utp pti_s8y9_punteros Utp pti_s8y9_punteros
Utp pti_s8y9_punteros
jcbenitezp
 

La actualidad más candente (20)

Introducción a los Punteros en el lenguaje C
Introducción a los Punteros en el lenguaje CIntroducción a los Punteros en el lenguaje C
Introducción a los Punteros en el lenguaje C
 
1 Tipos De Datos Ejercicios
1 Tipos De Datos Ejercicios1 Tipos De Datos Ejercicios
1 Tipos De Datos Ejercicios
 
08 - Punteros en lenguaje C
08 - Punteros en lenguaje C08 - Punteros en lenguaje C
08 - Punteros en lenguaje C
 
Gestión Dinámica de la Memoria
Gestión Dinámica de la MemoriaGestión Dinámica de la Memoria
Gestión Dinámica de la Memoria
 
Judith aguirre 11882314
Judith aguirre 11882314 Judith aguirre 11882314
Judith aguirre 11882314
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Punteros
PunterosPunteros
Punteros
 
Reserva y liberación de memoria
Reserva y liberación de memoriaReserva y liberación de memoria
Reserva y liberación de memoria
 
Recuperacin 333333
Recuperacin 333333Recuperacin 333333
Recuperacin 333333
 
Tipos de datos.java
Tipos de datos.javaTipos de datos.java
Tipos de datos.java
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Clase1 c
Clase1 cClase1 c
Clase1 c
 
Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)
 
TIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVATIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVA
 
Utp pti_s8_punteros
 Utp pti_s8_punteros Utp pti_s8_punteros
Utp pti_s8_punteros
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 
Utp pti_s8y9_punteros
 Utp pti_s8y9_punteros Utp pti_s8y9_punteros
Utp pti_s8y9_punteros
 
Fpr Tema 2 www.fresymetal.com
Fpr Tema 2 www.fresymetal.comFpr Tema 2 www.fresymetal.com
Fpr Tema 2 www.fresymetal.com
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
 

Destacado (11)

4º eso.2015 16.ies guadalpin.
4º eso.2015 16.ies guadalpin.4º eso.2015 16.ies guadalpin.
4º eso.2015 16.ies guadalpin.
 
Star of the Month
Star of the MonthStar of the Month
Star of the Month
 
recommendation
recommendationrecommendation
recommendation
 
Test
TestTest
Test
 
Blis debasis
Blis debasisBlis debasis
Blis debasis
 
Lettre LADUREE
Lettre LADUREELettre LADUREE
Lettre LADUREE
 
Sales
SalesSales
Sales
 
Prestataire
PrestatairePrestataire
Prestataire
 
Mayweek2exercise
Mayweek2exerciseMayweek2exercise
Mayweek2exercise
 
Indice de masa corporal
Indice de masa corporalIndice de masa corporal
Indice de masa corporal
 
sgh3
sgh3sgh3
sgh3
 

Similar a Punteros

PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
die_dex
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
hassanbadredun
 
Codigo Inseguro
Codigo InseguroCodigo Inseguro
Codigo Inseguro
rezzaca
 

Similar a Punteros (20)

PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Luis hernandez 22310621
Luis hernandez   22310621Luis hernandez   22310621
Luis hernandez 22310621
 
Punteros2
Punteros2Punteros2
Punteros2
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
Tema 8 www.fresymetal.com
Tema 8 www.fresymetal.comTema 8 www.fresymetal.com
Tema 8 www.fresymetal.com
 
Definición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la ProgramaciónDefinición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la Programación
 
Administración de memoria y apuntadores
Administración de memoria y apuntadoresAdministración de memoria y apuntadores
Administración de memoria y apuntadores
 
Matrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio CabelloMatrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio Cabello
 
Punteros 2012
Punteros 2012Punteros 2012
Punteros 2012
 
Teoria punteros
Teoria punterosTeoria punteros
Teoria punteros
 
Trabajo programacion 1 jose silva
Trabajo programacion 1 jose silvaTrabajo programacion 1 jose silva
Trabajo programacion 1 jose silva
 
Codigo Inseguro
Codigo InseguroCodigo Inseguro
Codigo Inseguro
 
Punteros clas5
Punteros clas5Punteros clas5
Punteros clas5
 
Estructuras dinámicas de datos
Estructuras dinámicas de datosEstructuras dinámicas de datos
Estructuras dinámicas de datos
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.tipos de datos
1.tipos de datos1.tipos de datos
1.tipos de datos
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Punteros

  • 1. Estructuras de Datos II-2012 Prof. Marlene DL Punteros Es una variable que contiene la dirección de un dato almacenado en memoria, es decir que apunta a ese dato. (Badenas, Coltell, Llopis, 2001). Los punteros contienen como valor una dirección de memoria de otra variable, Un puntero puede apuntar a cualquier tipo de datos deinidos en C++ o definido por el programador. Declaración de un puntero: Sintaxis: tipoDato * identificador o nombre del puntero; * identifica la declaración del puntero. int * ptrNum; // puntero a variables de tipo int NOTA: • El tipo de datos utilizado en la declaración de un puntero debe ser del mismo tipo de datos que el de la variable a apuntar. • Si un puntero es tipo void, se define un puntero genérico que puede apuntar a variables de cualquier tipo, según se le asigne. • Al declarar un puntero, (al igual que una variable), su valor no está definido, para evitar un uso incorrecto, antes de ser utilizado, se puede inicializar con el valor nulo NULL. Ejemplo: int *px = NULL; Operaciones sobre punteros: El operador * Permite acceder al dato apuntado. Ejemplo: si hay un puntero ptrNum, con * ptrNum se accede al dato apuntado. El operador & Obtiene la dirección de memoria de una variable. Según Badenas, Coltell, Llopis (2001) dada la declaración: 1 int *px, *py; 2 int x = 5; 3 4 px = &x; // px pasa a contener la dirección de x(px apunta a x). 5 *px = 10; // x vale 10; 6 py = px; La instrucción py = px ; copia el contenido de px sobre py, py tiene la misma dirección que px, apuntara sobre el mismo dato apuntado por px.
  • 2. Estructuras de Datos II-2012 Prof. Marlene DL La instrucción *py = *px; copia el contenido, en este caso un entero, apuntado por px en el espacio de memoria apuntado por py. Qué valor tiene *px antes de la instrucción 5? Qué valor tiene x después e la instrucción 5? Qué valor tiene *py después de la instrucción 6? La instrucción py = NULL; hace que py apunte a nada, suele realizarse para señalar que el puntero no está apuntando a ningún lugar valido, de modo que no se intente acceder a ningún dato con *py. El operador = Asignación Los operadores == y != Permite comprobar si dos punteros apuntan o no al mismo sitio, o corroborar si un puntero está o no apuntando a nada. Ejemplo: if (px == NULL) Referencias Bibliográficas: Badenas, J. Coltell, O. Llopis, J. (2001). Curso práctico de programación en C y C++. (2da ed). Castelló de la Plana: Publicacions de la Universitat Jaume I.