Descargar la presentación
La descarga está en progreso. Por favor, espere
1
PUNTEROS EN EL LENGUAJE C
2
VARIABLES DE PUNTERO 55 18 45 Variable común ( x )
El valor de la variable está almacenada en la dirección de memoria. VARIABLE DE PUNTERO (px) Aquí se almacena la DIRECCIÓN DE MEMORIA DE X. Se dice que px APUNTA a X. 55 Una variable de puntero también puede tener a su vez otra variable de puntero. 18 45
3
UNA VARIABLE DE PUNTERO ALMACENA LA DIRECCIÓN DE LA MEMORIA DE OTRA VARIABLE.
4
DECLARACIÓN DE VARIABLES DE TIPO PUNTERO EN C
tipo * nombre; Ejemplos: int * pi; //puntero a entero int * pa, *pb; //dos punteros a entero char ca, *cca // una variable char y un puntero a // tipo char double * db; // puntero a double char * pchr; // puntero a char long * pln[20]; //VECTOR de punteros tipo //long
5
OPERACIONES CON PUNTEROS
6
Asignaciones Variable de puntero = Dirección de memoria
x = 15.22 15.22 px = &x 26
7
Asignaciones (cont.) Variable de puntero1 = Variable de puntero2
15.22 x = 15.22 26 px = &x py = px 26 DOS VARIABLES DISTINTAS VAN A APUNTAR A LA MISMA DIRECCIÓN DE MEMORIA
8
DERREFERENCIACION (INDIRECCION)
Es la operación que permite obtener el valor almacenado en la dirección de memoria a la que apunta el puntero. Sintaxis: * variable de puntero Ejemplo: x = 50; //una variable almacena el valor 50. px = &x; //la variable de puntero almacena la //dirección de x. *px = 250; //La variable x pasa a valer 250. y = *px; //Asigno a y el valor de x o sea 250.
9
OPERACIONES ARITMÉTICAS CON PUNTEROS
A las variables de puntero se les puede sumar y restar números enteros. Al sumarle o restarle un entero n a una variable de puntero se apuntará a una dirección de memoria ubicada a (± n) multiplicado por el número de bytes del tipo de variable a la que se apunta. Ejemplo: Al sumarle 5 a una variable de puntero que apunta a int, se apuntará a una nueva dirección de memoria ubicada 20 bytes en sentido creciente de la memoria.
10
152 35 1785 92 88 x = 152 px+3 apunta a &x+3 * sizeof( tipo ) *( px + 3 ) vale 92 px == &x &x == 17 *px == 152 17
11
PUNTEROS Y VECTORES a a es un vector de 9 términos Se puede decir que:
1520 362 55 96 725 133 -95 128 *(a + 5) a[0] * a Se puede decir que: a Es una variable de puntero que apunta a la dirección de memoria de a[0]. a == & a[ 0 ]; *a == a[ 0 ]; *( a + 5) == a[ 5 ] a[8] a
12
PUNTEROS Y MATRICES a 1520 362 55 96 725 133 -95 128 a[ 0 ] a[ 1 ]
-95 128 a[ 0 ] a[ 1 ] a[ 2 ] a[ 0 ][ 0 ] a[ 2 ][ 2 ] a
13
PUNTEROS Y MATRICES Conclusiones
Una matriz m x n es un vector de m vectores de dimensión n. a[ m ][ n ] == { a[ 0 ], a[ 1 ], . . ., a[ m ] } donde cada a[ i ] vale: a[ i ] == { a[ i ][ 0 ], a[ i ][ 1 ], , a[ i ][ n ] } Para todas las matrices se cumple lo siguiente: a == &a[ 0 ][ 0 ] //dirección de memoria a[0][0]; a[ 0 ] = &a[ 0 ][ 0 ]; a[ i ] == &a[ i ][ 0 ]; *a[ i ] == a[ i ] [ 0 ]; *a[ i ] + j == a[ i ][ j ]; a[ i ][ j ] == *( *a+ i * m + j ) ;
14
FIN DE PUNTEROS
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.