¿Cómo manejar una estructura como variable y como puntero?

Hola
Quisiera saber como se maneja una estructura como variable y como puntero para enviarla de una función a otra como entrada y entrada /salida agradecería enormemente a la persona que me ayude
Respuesta
1
Primero te declaras la estructura son la palabra reservada struct.
A partir de ahí ya tienes definido un nuevo tipo de dato y lo único que tienes que hacer es declararte variables de ese tipo o punteros.
Ej:
struct fecha
{
int dia;
int mes;
int anio;
};
De esta manera te declaras la estructura
Cómo no se si tienes C o C++ te lo digo para C que funciona en los dos.
struct fecha mifecha; //Variable normal
struct fecha *mifecha;//Puntero a registro
Por lo demás la utilización es igual con variables que con registros a excepción de el acceso a los campos mediante el operador "."
Si tienes dudas puedes visitar mi página sobre C++ en:
http://es.geocities.com/twenty_fran2002
Sobre esta tuda tengo una más importante
struct fecha
{
int dia;
int mes;
int anio;
};
void main()
{
struct fecha mifecha; //Variable normal
struct fecha *mifecha;//Puntero a registro
listo digamos que ya ingrese los datos
A la variable y puntero de tipo estructura, envío esa variable y ese puntero en forma de entrada
fn1(mifecha,mifecha);
y entrada salida
fn1(&mifecha,&mifecha);
Respectivamente
Ahora lo que quisiera saber como manejo esas variable y ese puntero de entrada y entrada/salida en el prototipo y dentro de la función donde los mande llamar, creo que la variable estructura se maneja del mismo modo que una variable normal pero creo que el puntero no
Espero que me puedas ayudar
P.DE la web que me enviaste esta super
Para C++ (que no para C):
Lo que deberías hacer en el prototipo es poner el tipo de dato, en este caso fecha, y poner si se pasa por referencia o no, hacer modificaciones, es decir si lo quieres de salida o entrada-salida, con el operador &
Por ejemplo si quieres tener una función que muestre la fecha debería tener este prototipo:
void mostrarfecha(fecha);
Sin el & porque no se modifica
Si lo que quieres es, por ejemplo, leer por teclado una variable de tipo fecha el prototipo sería:
void leerfecha(fecha &);
Con el operador & porque como es un dato de salida lo quieres modificar.
En el caso de la llamada a las funciones no debes poner el operador & en ninguno de los dos casos.
Por ejemplo si quieres leer un dato de tipo fecha y luego mostrarlo por pantalla deberías
void main()
{
fecha unafecha;
leerfecha(unafecha);
mostrarfecha(unafecha);
}
Para acceder a los campos de la estructura pasada como parámetro deberías:
- FUNCION LEERFECHA
void leerfecha(fecha &mifecha)
{
cout<<"Dia";
cin>>mifecha.dia;
cout<<"Mes";
cin>>mifecha.mes;
cout<<"Año";
cin>>mifecha.anio;
}
Es decir se accede a los campos por el operador punto "." No te olvides del &!!!
FUNCIÓN MOSTRARFECHA
void mostrarfecha(fecha mifecha)
{
cout<<mifecha.dia<<"/"<<mifecha.mes<<"/"<<mifecha.anio;
}
Igualmente se accede mediante el operador ".", esta vez no necesitas el uso del & porque no quieres modificarlo y sólo te interesa el valor de la variable pasada (parámetro de entrada).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas