Você está na página 1de 4

Punteros en Lenguaje C

Los Punteros o Apuntadores, son variables que contienen la direccin de otra variable.
Los usos principales, que tienen, los punteros, son los siguientes: ->Nos ayuda,
para que una funcin devuelva ms de un valor. Por ejemplo, una funcin que
devuelva un vector de enteros, en dicha funcin mandamos la direccin del primer
elemento a la funcin principal, y a partir de ella, imprimimos todos los valores
contenidos en el vector.
->Mejor uso de la memoria dinmica. Esto es lo que ms nos tiene cuenta, el
lector debe tener presente que, el uso de punteros, ayuda a ahorrar memoria y por
consiguiente, hace ms efectivo el uso y administracin de la misma.
Declaracin de Punteros.
La forma de declarar un apuntador, es la siguiente:
int *p;
int->indica que, es un puntero hacia un entero.
*->indica al compilador que esa variable, es un puntero
p-> Es el identificador del puntero.
Otros ejemplos:
float *q; /*apuntador hacia un flotante*/
char *z; /*puntero que contiene la direccin de una variable que guarda un
carcter */
Para referirnos a un valor a travs de un apuntador, lo hacemos mediante un
proceso llamado
http://programandoenc.over-blog.es/article-58801993.html

carateristicas de puntero en lenguaje c

Un puntero es una variable que contiene la direccin de otra variable. Tambin


podramos decir que un puntero es una variable que representa la posicin (ms
que el valor) de otro dato, tal como una variable o un elemento de un array.
Cuando una variable puntero es definida, el nombre de la variable debe ir
precedido de un asterisco (*). Este identifica que la variable es un puntero. Por
tanto, una declaracin de puntero puede ser escrita en tminos generales como:

<tipo> es cualquier tipo de variable en C.


<identificador> es el nombre del puntero. El tipo o tipo base, indica el tipo
de variables que se podrn manipular a travs del puntero. Es importante
conocer el tipo base de un puntero, puesto que toda la aritmtica de
punteros se realiza con relacin a la base. (Luego lo veremos ms claro en
los ejemplos).
& Devuelve la direccin de memoria del operando.
* Devuelve el valor almacenado en la direccin de memoria que
determina el operando.
Los punteros se pueden comparar entre ellos y se pueden
asignar direcciones de memoria. Adems, se pueden
decrementar o incrementar. El incremento o el decremento
vara segn el tipo de dato al que apunten. A los punteros
tambin se les puede sumar o restar nmeros enteros. NO
SE PUEDE REALIZAR NINGUNA OTRA OPERACIN
ARITMTICA CON LOS
http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap8/cap82.htm
Creacin
Un vector, tambin llamado array(arreglo) unidimensional, es una estructura de datos que
permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria
juntos, uno despues de otro. A este grupo de elementos se les identifica por un mismo nombre
y la posicin en la que se encuentran. La primera posicin del array es la posicin 0.

Podramos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres,
objetos, etc.

Crear un vector en C++ es sencillo, seguimos la siguiente sintaxix: Tipo nombre[tamanyo];

Ejm:

1 int a[5]; // Vector de 5 enteros


2 float b[5]; // vector de 5 flotantes
3 Producto product[5]; // vector de 5 objetos de tipo Producto
Podramos tambin inicializar el vector en la declaracin:

1 int a[] = {5, 15, 20, 25, 30};


2 float b[] = {10.5, 20.5, 30.5, 12.5, 50.5}
3 Producto product[] = {celular, calculadora, camara, ipod, usb}

Como hay 5 elementos en cada array, automticamente se le asignar 5 espacios de memoria


a cada vector, pero si trato de crear el vector de la forma int a[] , el compilador mostrar un
error, porque no indiqu el tamao del vector ni tampoco inicializ sus elementos.

http://es.slideshare.net/fransaldrin/c-lpii

utilizacin

En ciencias de la computacin, un puntero es un objeto del lenguaje de programacin,


cuyo valor se refiere a (o "apunta a") otro valor almacenado en otra parte de la memoria
del ordenador utilizando su direccin. Un puntero referencia a una ubicacin en memoria, y
a la obtencin del valor almacenado en esa ubicacin se la conoce
como desreferenciacin del puntero. A modo de analoga, un nmero de pgina en el
ndice de un libro podra considerarse un puntero a la pgina correspondiente;
desreferenciar un puntero sera como ir a la pgina con el nmero de pgina especificada
en el ndice.

Los punteros a datos mejoran significativamente el rendimiento de las operaciones


repetitivas tales como cadenas de desplazamiento, tablas de bsqueda, tablas de control y
estructuras rbol. En particular, muchas veces es mucho ms barato en tiempo y espacio
copiar y des referenciar punteros que copiar y acceder a los datos a los cuales apunta el
puntero.

https://es.wikipedia.org/wiki/Puntero_(inform%C3%A1tica)

operaciones con punteros

Un puntero es una variable que contiene como valor una direccin de memoria, que
puede ser la direccin de memoria de otra variable, por tanto, podemos decir que el
puntero apunta a otra variable. La variable apuntada puede ser de cualquier tipo de dato
bsico (char, int, float, double), derivado (puntero) o estructurado (tabla, estructura,
etc..).

Los punteros tiene una gran utilidad, pues permiten una programacin eficaz a nivel de
mquina cuando se maneja la memoria del ordenador.

Su uso en C proporciona las siguientes ventajas:


En el caso de paso de variables a una funcin por direccin o referencia, es
necesario emplear parmetros formales como punteros.
Permiten realizar operaciones de asignacin dinmica de memoria.
Permiten efectuar operaciones con estructuras de datos dinmicas.

Los punteros deben usarse con precaucin, ya que pueden provocar fallos en el
programa difciles de localizar, las causas ms corrientes de error en el uso de punteros
es:

Asignacin incorrecta de direcciones, por lo que se puede llegar a escribir


en zonas de la memoria que contengan cdigo o datos del programa
Operaciones incorrectas con los punteros, cuando no se tiene en cuenta el
tipo de valor de las variables apuntadas.

http://www.casdreams.com/auladeinformatica/PROG/c5.html

Arrays de Punteros.
Un array multidimensional puede ser expresado como un array de
punteros en lugar de como un puntero a un grupo contigupo de arrays. En
estos casos el nuevo array ser de una dimensin menor que el array
multidimensional. Cada puntero indicar el principio de un array de
dimensin (n-1).
En trminos generales, un array bidimensional puede ser definido como un
array unidimensional de punteros escribiendo.
NOTA IMPORTANTE: Notar que el nombre del array precedido por un
asterisco no est encerrado entre parntesis en este tipo de declaracin. Es
conveniente fijarse en las diferencias con las declaraciones hechas en el
apartado anterior ( 8.9) Punteros y arrays multidimensionales.) La regla de
precedencia de derecha a izquierda asocia primero el par de parntesis
cuadrados con array, definindolo como un array. El asterisco que lo
precede establece que el array contendr punteros.
http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap8/cap810.htm

PUNTEROS DE CARACTERES Y CADENAS

Los punteros de carcter se utilizan normalmente para acceder a cadenas


de caracteres, puesto que stas estn construdas tomando como base una
direccin (la del primer carcter) y un marcador de fin de cadena (el
carcter '\0'). La declaracin de un puntero de caracter sigue las reglas
habituales:
char * puntero_caracter;

En este momento puntero_caracter no tiene un valor utilizable. Ser


precisor drselo; esto podra hacerse en la forma siguiente:

Char letra;
Char * puntero;
Puntero = &letra;

y se tendr un alias.

Punteros de cadenas: Definicin, Declaracin e Iniciacin.


La declaracin de una cadena puede ser de la forma siguiente:

char cadena[LONGITUD];

As se reserva espacio para una cadena de LONGITUD caracteres. En


C, el nombre de las listas monodimensionales equivale a la direccin
del primer elemento de las mismas.

http://maxus.fis.usal.es/fichas_c.web/07xx_PAGS/0702.htm

Você também pode gostar