• Lunes 16 de Diciembre de 2024, 04:44

Autor Tema:  Duda, declaracion miembros de Estructura  (Leído 1592 veces)

Gaudy

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Duda, declaracion miembros de Estructura
« en: Viernes 14 de Septiembre de 2012, 23:58 »
0
Buenas, recién estoy estudiando C y me topé con una duda acá
Código: C
  1.         typedef struct {
  2.              float re;
  3.              float im;
  4.         } complex;
  5.  
  6.         complex  a, b, c[100];
se supone q la variable c es de tipo complex, pero... es un arreglo?? se puede hacer eso?? porq segun tenia entendido las variables miembros de estructura son para hacer referencia (propia) a re e im de tipo float, pero q hace un arreglo en el medio¿?

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:Duda, declaracion miembros de Estructura
« Respuesta #1 en: Sábado 15 de Septiembre de 2012, 06:46 »
0
Me parece que malinterpretaste lo que significa un arreglo, un arreglo NO es un tipo de variable, yo diria que un arreglo es un conjunto de variables del mismo tipo, agrupadas bajo el mismo nombre para facilitar su manejo.

O sea en lugar de tener 3 variables de tipo complex:

Código: C++
  1. complex c1, complex c2, complex c3;

ponemos:

Código: C++
  1. complex c[3]:

de esa forma cuando queremos referirnos a cada complex podemos usar c[0], c[1], c[2], (recuerda que los arreglos comienzan en cero) en lugar de c1, c2, c3, es mas, incluso podemos utilizar una variable indice (c[ i ]) para referirnos a la variable, con lo que podriamos poner un ciclo para imprimir los tres valores:

Código: C++
  1. for (i=0; i<3; i++)
  2. printf("%f %f\n", c[i].re, c[i].im]);
  3.  

en lugar de:

Código: C++
  1. printf("%f %f\n", c1.re, c1.im);
  2. printf("%f %f\n", c2.re, c2.im);
  3. printf("%f %f\n", c3.re, c3.im);
  4.  

ahora imaginate que quisieras utilizar, como en tu ejemplo, 100 variables de tipo complex, seria demasiado laborioso hacer:
complex c1, c2, c3, c3, c5, c6, c7, c8 asi hasta llegar a c100

Asi que tu respuesta a:

Citar
se puede hacer eso??

es SI, y de hecho es la manera mas eficiente para manejar 100 valores de tipo complex

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

ernestoac

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Duda, declaracion miembros de Estructura
« Respuesta #2 en: Martes 25 de Septiembre de 2012, 22:38 »
0
Amigo, en ese caso que expones a y b son estructuras que cada una tiene una referencia a re e im que son float, en caso de c es un arreglo de tipo complex es decir que es como si hubieras declarado cien estructuras diferentes, cada una va a hacer referencia a una variable re y otra im,
¿te sirvió?