programacion
Indice
Introduccion
Declaracion de un puntero
Diferencia entre "*" y "&"
Inicializacion de un puntero
Generacion de codigo
Errores mas comunes
Primer casoSegundo caso
Tercer caso
Bibliografia
Creditos
Introduccion
Esta pagina no es un lujo, ni un vicio, sino una necesidad. Tras años de aprender C a golpe de practicas (ISO, XC, STD, SPD, AAD,CASO, SAC, EISO ...) nos hemos decidido a realizar esta pagina que esperamos os sea de gran ayuda en la realizacion de vuestras practicas en C.
Falta por aclarar que esta pagina no esta dedicada alpublico en general, sino a cualquiera que empiece a programar en C y ya tenga nociones de programacion.
Nacho & Pep.
Declaracion de un puntero
Un puntero, en C, se declara como sigue:
TIPO *nombre_puntero ;
Donde TIPO es cualquier tipo definido. Asi, un puntero a caracter se declararia de la siguiente forma:
char *pchar;
Diferencia entre "*" y "&"
En C, al contrario que en otroslenguajes de programacion, se puede obtener directamente la direccion de memoria de cualquier variable. Esto es posible hacerlo con el operador unario "&"; asi:
char a; /* Variable 'a' de tipo char */printf("la direccion de memoria de 'a' es: %p \n", &a);
y para obtener lo apuntado por un puntero se utiliza el operador unario "*" de esta forma:
char a; /* Variable 'a' de tipo char */char *pchar; /* Puntero a char 'pchar' */
pchar = &a; /* 'pchar' +---------------+
| copia de buff | +---------------+
| *buff = 'a' |
+---------------+
|resto de vars |
| locales al |
| main |
+---------------+
Segundo caso
Ahora volvemos a hacer lo mismo de otra manera que parece correcta
char*inicializa();
void otra_funcion();
main()
{
char *buff;
.
.
.
buff = NULL;
buff = inicializa();
/* hasta aqui todo parece correcto */
otra_funcion();
/* aqui ya no se puede asegurar buff =...
Regístrate para leer el documento completo.