c语言结构体3之结构体嵌套

注意:

1结构体内部再次定义一个结构体 但是没有创建结构体的实例
  也就是说再次定义的结构体内部的变量会被当做母结构体的成员变量

 

 

 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 }

 

转载于:https://www.cnblogs.com/lanjianhappy/p/6011491.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值