PUNTEROS

PUNTEROS

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Rocket clouds
PUNTEROS por Mind Map: PUNTEROS

1. USOS

1.1. .-Las funciones pueden modificar sus argumentos de llamada. .-Asignan datos como listas enlazadas, arboles, etc. .-Mejora la eficiencia del programa mediante el uso de cadenas, arreglos, etc.

2. DEFINICION

2.1. Se define como una variable que almacena la dirección de otra variable en memoria ram, es decir una variable apuntando a otra.

2.1.1. DECLARACION

2.1.1.1. "tipo,nombre;" DONDE: Tipo=Cualquier tipo valido del lenguaje C. Nombre=El nombre que relacione el puntero

2.1.1.1.1. Esta a su vez define el tipo de variable a la que puede apuntar el puntero, cabe recordar que el puntero apunta al primer byte del dato.

2.1.2. Es un operador unario complemento de & que devuelve el valor de la variable localizada en el puntero. Ejm: int m,q,*cuenta=20 m=&cuenta; q=m; entonces la variable q;devuelve el valor que tiene el puntero cuenta.

3. OPERADORES CON PUNTEROS (DIRECCION)

4. OPERADORES CON PUNTEROS (INDIRECCION)

5. ERRORES MAS COMUNES .-Apuntar tipos de datos diferentes. .-Las variables apuntan a un diferente tipo base.

6. OPERACIONES CON PUNTEROS

7. INICIALIZACION DE PUNTEROS

7.1. De conveniencia se debe inicial izar el puntero con el valor null, para indicar que no apunta a un tipo especifico. Pero también se puede inicial izar con el tipo de dato a trabajar. ejm: char *p="HOLA QUE TAL;

8. INDIRECCION MULTIPLE

8.1. Se puede realizar de puntero a puntero por lo que se tiene 2 direcciones de memoria. INDIRECCION SIMPLE: El valor de un puntero normal es la dirección de la variable que contiene el valor deseado. INDIRECCION MULTIPLE: Se da de puntero a puntero, el primer puntero tiene la dirección del otro puntero, y este puntero tiene la dirección de la variable con el valor deseado.

9. Es un operador unario que devuelve la dirección de una variable. Ejm: int m, *cuenta=20; m=&cuenta; entonces m recibe la dirección de memoria ram del puntero cuneta.

10. ASIGNACIÓN : Se puede asignar la dirección de un puntero, solamente a otro puntero. Ejm: int x=10; int *p1,*p2; p1=&x; /*al puntero se le asigna el valore de X*/ p2=p1; /*a p2 se le asina el valor del puntero p1*/ ARITMÉTICA: Toda operación aritmética de punteros apunta al tipo de base, con la finalidad de que el puntero siempre apunte al tipo adecuado. Ejm: SUMA Se puede realizar la suma entre un entero y un puntero, o también por medio del operador incremento, aplicado al puntero. int *p; ó p++;-----------------------------------------> Cada vez que un puntero se incremente, este incrementa en la longitud del dato al cual apunta. COMPARACIÓN: Se puede realizar la comparación entre punteros usando los operadores lógicos siempre y cuando sean del mismo tipo. ejm: int *p,*q; if(p<q);