Estructuras en C/C++

En este primer post de contenidos, les hablaré de lo que son las estructuras y cómo utilizarlas en C y C++.

Una estructura es un tipo de dato compuesto de uno o más tipos de datos.

¿Para que nos sirve? Las estructuras nos ayudan a agrupar datos de una manera más ordenada y fácil para nosotros. Por ejemplo, supongamos que queremos guardar el nombre, la edad y el número de teléfono de un contacto en un programa en C/C++.

Podríamos hacer esto:

#include<iostream>
using namespace std;
int main()
{

    int edad,numero;
    char nombre[30];
    cout << "Ingrese Nombre: ";
    cin >> nombre;
    cout << "Ingrese Edad: ";
    cin >> edad;
cout << "Ingrese Numero: ";
cin >> numero;
cout << "\nNombre: " << nombre << "\nEdad: " << edad << "\nNumero de Telefono: " << numero << endl;
return 0;
}

Nota: Código en C++, pero traspasar código de C++ a C o viceversa, no es muy complicado.   Utilizando estructuras, sería así:

#include<iostream>
using namespace std;
struct contacto{
     int edad;
     int numero;
     char nombre[30];
};
int main()
{
struct contacto Amigo;
cout << "Ingrese Nombre: ";
cin >> Amigo.nombre;
    cout << "Ingrese Edad: ";
    cin >> Amigo.edad;
    cout << "Ingrese Numero: ";
    cin >> Amigo.numero;
    cout << "\nNombre: " << Amigo.nombre << "\nEdad: " << Amigo.edad << "\nNumero de Telefono: " << Amigo.numero << endl;
    return 0;
}

Estos programas hacen algo bien simple, pedir datos al usuario y mostrarlos en pantalla:

Quizás no este muy claro que utilizar estructuras nos ayuda dandonos facilidad, pero imaginemos que queremos pasarle los datos de algun contacto a nuestra funcion, para el primer programa tendríamos que definir la función así:

void funcion(char* nombre, int edad, int numero)
{
//...Logica de la función
}

Y en el segundo programa sería:

void funcion(struct  contacto Amigo)
{
//...Logica de la función
}

Ahora podemos darnos cuenta que tener todos los datos agrupados en una estructura nos facilita trabajar con ellos, además, personalmente encuentro que al utilizar estructuras, existe una mayor claridad en nuestro código.

Por cierto, si no les gusta la idea de que cada vez que creamos una estructura (o llamemos una en uns funcion) debamos escribir:


struct contacto Amigo;

Pordemos agregar en la declaración lo siguiente:


typedef struct contacto{
int edad;
int numero;
char nombre[30];
}Nombre;

Como ven, anteponemos la palabra reservada typedef y Nombre, donde utilizamos typedef para decirle al programa que definiremos un nuevo tipo de datos llamado “Nombre”, asi que ahora debemos llamarla asi:


Nombre Amigo;

Más adelante veremos como utilizar de formas más útiles nuestras estructuras (como por ejemplo, crear una lista de contactos con memoria dinámica).

Espero sus dudas, consultas, criticas, etc. en los comentarios, saludos.

Anuncios

4 pensamientos en “Estructuras en C/C++

  1. solo un error la estructura le diste el identificador de contacto y abajo usaste el control de flujo ( cin ) para agragar datos a na variable que no existia. porque le pusiste amigo en vez de contacto. un saludo.

    • Te refieres a las lineas:

      struct contacto Amigo;
      cout <> Amigo.nombre;

      o me equivoco?
      si son esas lineas, Amigo es una variable de tipo “struct contacto” y por eso guardar datos en Amigo.nombre.

      Espero haber entendido bien.

      saludos !

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s