C/Visual C - punteros

 
Vista:

punteros

Publicado por kaskero (1 intervención) el 14/12/2003 19:27:16
(ANSI C) Si tengo pejemplo: \"char *c\"; en que se diferencian \"c\", \"*c\" y \"&c\" ????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:punteros

Publicado por Ismael (21 intervenciones) el 14/12/2003 20:26:51
Imagina:
char *c, letra = 'A';
*c significa que a es una variable que contiene la dirección de otra que contiene un char
c = &letra //guarda la dirección de mem de la variable letra
printf("#X", c) imprime el contenido de c, es decir la direcc. de mem de letra
printf("%c", *c); imprime el contenido de la variable apuntada, letra, es decir, imprime A Equivale a printf("%c", letra);
printf("#X", &c) imprime en hexadecima la dirección de mem de lapropia variable c (que tambien tiene su propia dirección de mem)
Te aconsejo que mires enla sección de "Tutoriales" de la página que indico arriba.
suerte


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:punteros

Publicado por chuidiang (677 intervenciones) el 15/12/2003 09:26:11
Te amplio un poco lo que te cuenta Ismael.

Puedes imaginar un puntero como una flecha que apunta a algo.

Si tienes

char *c

c es una flecha (un puntero) que apunta a un caracter

*c es la cosa a la que apunta la flecha, es decir, el caracter.

&c es una flecha (un puntero) que apunta a c. c a su vez es otra flecha que apunta a un caracter. O sea, tienes una flecha que apunta a otra flecha que a su vez apunta a un caracter

A la hora de declarar variables, tanto el * como el & tienen un significado un poco distinto. El & para declarar variables solo es válido en C++. Cuando digo declarar variables me refiero tanto a declaración de variables como a parámetros de funciones.

void funcion (char *c)
Quiere decir que esta función admite como parámetro un puntero a char (una flecha a un caracter). Vale en C y C++. c es un puntero a char

void funcion (char &c)
Solo vale en C++. Quiere decir que admite una variable char. A esta funcion no podrías pasarle, por ejemplo
funcion ('a');
Tendrias que hacer
char b = 'a';
funcion (b);
Ademas, haciéndolo de esta forma, b y c son exactamente la misma variable, solo que con distinto nombre. Si cambias una, la otra también cambia. Declarado de esta forma, c es una variable de char como otra cualquiera.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar