Programación General > C/C++
Duda, declaracion miembros de Estructura
(1/1)
Gaudy:
Buenas, recién estoy estudiando C y me topé con una duda acá
--- Código: C --- typedef struct { float re; float im; } complex; 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:
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++ ---complex c1, complex c2, complex c3;
ponemos:
--- Código: C++ ---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++ ---for (i=0; i<3; i++)printf("%f %f\n", c[i].re, c[i].im]);
en lugar de:
--- Código: C++ ---printf("%f %f\n", c1.re, c1.im);printf("%f %f\n", c2.re, c2.im);printf("%f %f\n", c3.re, c3.im);
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??
--- Fin de la cita ---
es SI, y de hecho es la manera mas eficiente para manejar 100 valores de tipo complex
Saludos :)
ernestoac:
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ó?
Navegación
Ir a la versión completa