Curso de Programación en C/Prog119

De WikiCabal
Ir a la navegación Ir a la búsqueda

Prog119

 1 #include <stdio.h>
 2 
 3 #define LARGO 20
 4 
 5 struct Nombres {
 6     char Nombre[LARGO];
 7     char Apellido[LARGO];
 8 };
 9 
10 struct Personas {
11     struct Nombres handle;
12     char ComidaPreferida[LARGO];
13     char Profesion[LARGO];
14     float IngresosMensual;
15 };
16 
17 int main( void )
18 {
19   struct Personas Companero[2] = 
20   {
21     {
22       { "Horacio", "Villanueva" },
23      "salmon",
24      "Gigolo",
25       58112.00
26     },
27 
28     {
29       {"Rupert", "Delgado" },
30      "menudo",
31      "Editor de Revistas",
32       32400.00
33     }
34   };
35 
36   struct Personas * El;    /* here is a pointer to a structure */
37   El = &Companero[0];    /* tell the pointer where to point  */
38 
39   printf( "\npointer: %p\n", El );
40   printf( "Nombre: %s\n", El->handle.Nombre ); 
41   printf( "Apellido: %s\n", El->handle.Apellido ); 
42   printf( "Comida Preferida: %s\n", El->ComidaPreferida ); 
43   printf( "Profesión: %s\n", El->Profesion ); 
44   printf( "Ingreso Mensual: %.2f\n", El->IngresosMensual ); 
45 
46   El++;               /* point to the next structure      */
47 
48   printf( "\npointer: %p\n", El );
49   printf( "Nombre: %s\n", (*El).handle.Nombre ); 
50   printf( "Apellido: %s\n", (*El).handle.Apellido ); 
51   printf( "Comida Preferida: %s\n", (*El).ComidaPreferida ); 
52   printf( "Profesión: %s\n", (*El).Profesion ); 
53   printf( "Ingreso Mensual: %.2f\n\n", (*El).IngresosMensual ); 
54 
55   return 0;
56 }

Resultado

pointer: 0x7ffffaec23a0
Nombre: Horacio
Apellido: Villanueva
Comida Preferida: salmon
Profesión: Gigolo
Ingreso Mensual: 58112.00

pointer: 0x7ffffaec23f4
Nombre: Rupert
Apellido: Delgado
Comida Preferida: menudo
Profesión: Editor de Revistas
Ingreso Mensual: 32400.00

[rrc@llawyr CClase]$ 

Explicación