Resumen de sintaxis de Punteros en C
Octubre 15 2008 :: Apuntes, c ::
Copiado directamente de K & R.
int x = 1, y = 2, z[10];
int *ip; /* ip es un puntero a int */
//Se usa &var para referenciar a la dirección de la variable a la que se quiere apuntar
ip = &x; /* ip apunta a x */
//Se usa *puntero para referenciar el valor de la dirección a la que apunta el puntero
y = *ip; /* y es ahora 1 ( el valor de x) */
*ip = 0; /* x es ahora 0 */
ip = &z[0]; /* ip ahora apunta a z[0] */
Un ejemplo de una función que toma punteros como parámetros
void swap( int *px, int *py) {
int temp;
temp = *px;
*px = *py;
*py = temp;
}
Llamando a la función y pasando los valores por referencia
swap(&x, &y);
printf("\n");
printf("%d %d\n", x, y);
//Imprime 1, 0
Que pasa si imprimo un puntero directamente sin usar * ?
....
test1(&x, &y);
....
void test1( int *px, int *py) {
//Imprime 1 0
printf("%d %d\n", *px, *py);
//Imprime la dirección de x y casteada a Int
printf("%d %d\n", px, py);
}
Arreglos, Punteros y aritmética de punteros
#include
int main() {
int a[10], x;
int *pa;
//Relleno el array a con [0-9]
for( x=0; x<10; x++ ) {
a[x] = x;
printf(”%d\n”, a[x]);
}
pa = &a[0];
//pa es ahora un puntero que apunta a la primer dirección del arreglo
printf(”%d %d\n”, a[7], *(pa+7) );
//Imprime 7 7.. porque luego de pa= &a[0], a[i] es igual a *(pa + i)
}
Punteros y funciones
//Toma como parámetro 2 punteros a char
int strlen( char *s, char *t) {
while((*s++ = *t++) != '\0');
}
....
//Función que devuelve un apuntador a int
int *f();
Referencias
The C Programming Language, Segunda Edición; Kernighan, Ritchie; Prentice Hall Hispanoamerica, 1991Autor: Emiliano Martínez Luque.


Deja un Comentario
Guía de los comentarios
Tu Email es requerido pero no sera publicado.
Podes usar los siguientes tags de HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>Si no comentastes antes tu comentario debera ser aprovado antes de que se lo muestre. Perdón, pero hay demasiado spam.