c語言結構體3之結構體嵌套

注意:ui

1結構體內部再次定義一個結構體 可是沒有建立結構體的實例
  也就是說再次定義的結構體內部的變量會被當作母結構體的成員變量spa

 

 

 1 struct tianchao
 2 {
 3     int data;
 4     char name[24];
 5     struct beijing//結構體內部再次定義一個結構體 可是沒有建立結構體的實例
 6                     //也就是說再次定義的結構體內部的變量會被當作母結構體的成員變量
 7     {
 8         char str[100];
 9         int num;
10     };
11 };
12 
13 void mainww()
14 {
15     struct tianchao t1;
16     //t1.這裏按照道理是能夠有四個變量 可是在此不能夠 應該是編譯器的問題
17     
18     //是沒有問題
19     /*t1.data = 100;
20     t1.num=66;
21     sprintf(t1.name,"goa");
22     sprintf(t1.str,"gob");*/
23 }
24 
25 struct tianchao
26 {
27     int data;
28     char name[24];
29     struct beijingA結構體 
30                     
31     {
32         char str[100];
33         int num;
34     }b1;//內部定義的第一種方式
35     struct beijingA結構體 b2;//內部定義的第二種方式
36 };
37 
38 void main()
39 {}

 

 1 //struct china
 2 //{
 3 //    int data;
 4 //    char name[100];
 5 //    struct guiyang
 6 //    {
 7 //        char str[100];
 8 //        int num;
 9 //    }a1;//不清楚爲何必須加上a1 編譯器才識別
10 //};
11 //void main()
12 //{
13 //    struct china c1;
14 //    c1.a1.num = 200;
15 //    sprintf(c1.a1.str,"ad");
16 //    printf("%d,%s",c1.a1.num,c1.a1.str);
17 //
18 //    getchar();
19 //}
20 //方式二
21 struct china
22 {
23     int data;
24     char name[100];
25     //給結構體內部在此定義一個結構體,建立結構體變量,這個變量會直接看成成員
26     //可是沒有建立結構體的實例
27     //再次定義的結構體內部的變量 會被看成母結構體的成員變量
28     struct guiyang
29     {
30         char str[100];
31         int num;
32     }a1;
33     struct guiyang b1;
34 };
35 void main()
36 {
37     struct china c1;
38     c1.b1.num = 200;
39     sprintf(c1.b1.str,"ad");
40     printf("%d,%s",c1.b1.num,c1.b1.str);
41 
42     getchar();
43 }
相關文章
相關標籤/搜索