Estás navegando como visitante. Por favor Registrate y Logueate para poder participar de ventajas como postear en el foro, Solicitar Ayuda, Ver Enlaces, Ver Imagenes. Registrate con nosotros clickeando AQUÍ.    
Registrarse    Identificarse   Blogs
Anuncios Internos

Quieres ser Moderador/a. Si estas interesado/a, lee la info sobre ésto, haciendo Click
Promociona tu web AQUÍ

En ésta web está expresamente prohibido, publicar enlaces de descargas de material protegido por la ley, asi como seriales, cracks, parches, programas o juegos pirateados sin el consentimienteo del autor, en cuyo caso se debará exibir dicha autorización para legitimizar la descarga. Si algun usuario incumple esta norma, sera
eliminado junto a todos sus mensajes.


Portal » Índice general » Zona Informática » Programación




Nuevo tema Responder al tema  [ 1 mensaje ] 
{ VISITS } Vistas: 372  { VISITS } Favoritos: 0  | { VISITS } Seguidores: 1 
Seguidores: EseTecnico
 
Autor Mensaje
 Asunto: ¿Que son los punteros en programacion ?
 Nota Publicado: 23 Ene 2012 17:56 


Desconectado
Del equipo
Del equipo|Del equipo|Del equipo
Avatar de Usuario

Mensajes: 737

Todos mis aportes
Estado de ánimo: Feliz


Nivel: 24

HP: 40 / 1353
40 / 1353 40 / 1353 40 / 1353
MP: 646 / 646
646 / 646 646 / 646 646 / 646
EXP: 737 / 766
737 / 766 737 / 766 737 / 766

Karma: 10

Ubicación:Huelva


Sexo:
Masculino



He dado: 0 Gracias
Recibidas: 69 Gracias
Blog: Ver blog (0)
¿Que es un punteros?

Un puntero o apuntador es una variable que referencia una región de memoria; en otras palabras es una variable cuyo valor es una dirección de memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una dirección de memoria en la que se encuentra almacenado un valor ' v ' se dice que ' p ' apunta a ' v '. El programador utilizará punteros para guardar datos en memoria en muchas ocasiones, de la forma que se describe a continuación.


Introducción

Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. La razón de ser principal de los punteros reside en manejar datos alojados en la zona de memoria dinámica o heap (aunque también se pueden manipular objetos en la zona estática), bien sean datos elementales, estructuras (struct en C) u objetos pertenecientes a una clase (en lenguajes Orientados a Objetos). Gracias a esta propiedad, los punteros permiten modelar un grafo, en donde los elementos de éste son los datos residentes en memoria y las relaciones entre los elementos son los propios apuntadores.

En nuevos lenguajes de alto nivel, los punteros se han tratado de abstraer. De tal forma que en el lenguaje C# sólo pueden ser usados en zonas de código delimitadas como "inseguras", o llegando a su total desaparición del código en lenguajes como Java o Eiffel.

Que no estén en el código no implica que no existan: internamente, la Máquina Virtual Java trata todas las variables que referencian objetos como punteros a zonas de memoria que realmente contienen los objetos. Esto puede causar ciertos efectos laterales si no se tiene en cuenta. De hecho, no es descabellado pensar que Java está utilizando punteros si cuando uno accede a una propiedad de un objeto no inicializado es lanzada la excepción NullPointerException.



Ejemplo de uso de punteros en una estructura en C

El ejemplo que sigue es propio del lenguaje C/C++ y no es de aplicación en otros lenguajes de programación:

struct Elemento // Ejemplo de un nodo de lista doble enlazada
{
int dato;
struct Elemento *siguiente; // El '*' es el operador de indirección, y es el usado para declarar punteros
struct Elemento *anterior;
};
Para acceder a los atributos como punteros de una estructura que va a ser tratada como tal, se debe desreferenciar el puntero y acceder a sus miembros como se haría con una variable normal, o usar directamente el operador: ->. De tal modo que:

Elemento *elem;
Elemento sig1 = (*elem).siguiente;
Elemento sig2 = elem->siguiente;
/* Se cumple que: sig1==sig2 */
Los paréntesis en este ejemplo son necesarios, pues el operador '*' es el que menor prioridad de operaciones tiene asignada (por lo que se haría *(elem.siguiente), lo que es incorrecto, pues trataría acceder a un campo de una dirección de memoria, y no de una estructura. Esto es un error sintáctico, en tiempo de compilación).

Otro ejemplo en C++

void swap(int *x, int *y)
{
int temp;
temp = *x; // copia el valor apuntado por x a temp
*x = *y; // copia el valor apuntado por y en la ubicación del puntero x
*y = temp; // copia el valor de temp en la ubicación apuntada por y
}
Ejemplo en C#

//Suma de dos números enteros
private unsafe int Suma(int* a, int* b)
{
return *a + *b;
}

// Su uso (El método llamador también debe tener la palabra clave 'unsafe'):
// int x, y;
// int *ptr1 = &x;
// int *ptr2 = &y;
// Suma(ptr1, ptr2);

firma

Este es el lugar para tu firma

Personaliza tu perfil



Pc-teros Community - www.pc-teros.es
Arriba 
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
 
Nuevo tema Responder al tema  [ 1 mensaje ] 


¿Te fue util este tema?

Link:
BBcode:
HTML:


Temas Similares


Portal » Índice general » Zona Informática » Programación


Temas relacionados
 Temas   Autor   Comentarios   Vistas   Último mensaje 
No hay nuevos mensajes sin leer en este tema. Programacion

EseTecnico

2

270

21 Jun 2011 15:16

ezequiel-1031 Ver último mensaje

No hay nuevos mensajes sin leer en este tema. Introduccion a la programacion

EseTecnico

2

285

20 Ene 2012 10:04

EseTecnico Ver último mensaje

No hay nuevos mensajes sin leer en este tema. Introduccion a la programacion

EseTecnico

0

358

21 Ene 2012 20:55

EseTecnico Ver último mensaje

No hay nuevos mensajes sin leer en este tema. Curso de programacion PHP

blquack

1

900

04 Feb 2014 17:46

blquack Ver último mensaje

No hay nuevos mensajes sin leer en este tema. CodeLite 2.5.3.4075 - Programación en C/C++

soft1

0

236

25 Sep 2010 10:21

soft1 Ver último mensaje

No hay nuevos mensajes sin leer en este tema. Lenguaje de programacion en PASCAL.PDF

EseTecnico

0

512

06 Jul 2011 11:21

EseTecnico Ver último mensaje

No hay nuevos mensajes sin leer en este tema. Funciones de joomla 1.5 - programación

blquack

0

948

24 Jun 2012 17:38

blquack Ver último mensaje

No hay nuevos mensajes sin leer en este tema. Programacion de java c visual basic ect....

EseTecnico

4

583

30 Ene 2012 12:40

EseTecnico Ver último mensaje

 


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

 
 

 
No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron