Punteros

int x=5, y=6;

int *px, *py;

px=py; copia el contenido de py sobre px, de modo que px apuntará al mismo objeto que

apunta py.

*px=*py; copia el objeto apuntado por py a la dirección apuntada por px.

px=&x; px apunta a x.

py=0; hace que py apunte a nada (NULL).

px++; apunta al elemento siguiente sobre el que apuntaba inicialmente

Se puede sumar o restar enteros a y de punteros.

p1=p1+9; p1 apunta al noveno elemento del tipo p1 que está más allá del elemento al

que apunta actualmente.

 

 

Punteros y arrays

char cad[80], *p1;

p1 = cad p1 ha sido asignado a la dirección del primer elemento del array

cad.

Para acceder al quinto elemento de cad se escribe:

cad[4] o *(p1+4)

 

Arrays de punteros

Array de punteros a enteros:

int *x [10];

Para asignar la dirección de una variable entera llamada var al tercer elemento del array de punteros, se escribe:

x[2]=&var;

Para encontrar el valor de var:

*x[2]

 

Punteros a punteros

puntero ----------> variable Indirección simple

puntero ---------> puntero ---------> variable Indirección múltiple

float **balancenuevo;

balancenuevo no es un puntero a un número en coma flotante, sino un puntero a un puntero a float.

Ejemplo:

main(void)

{

int x, *p, **q;

x=10;

p=&x;

q=&p;

printf("%d",**q); /* imprime el valor de x */

return 0;

}