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

注意:

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 }
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C语言结构体是一种用户自定义的数据类型,它允许我们存储不同类型的数据在一个内存中。结构体是由多个成员组成的,每个成员可以是任意数据类型,可以是基本数据类型(如整数、浮点数、字符等),也可以是其他结构体类型或指针类型。结构体可以用来描述现实中的复杂对象或数据结构,例如学生、员工、图书等,方便我们对其进行操作和管理。 使用结构体可以将相关的数据和功能封装在一起,提高代码的可读性和可维护性。通过定义一个结构体类型,我们可以创建该类型的变量,并通过变量名来访问结构体的成员。结构体成员的访问可以使用"."运算符来进行,例如:"struct_name.member_name"。 在C语言中,可以通过以下方式定义一个结构体: ``` struct 结构体名称 { 数据类型 成员1; 数据类型 成员2; ... }; ``` 可以使用typedef关键字来给结构体类型定义一个别名,方便后续使用。 结构体的使用可以参考下面的例子: ``` #include<stdio.h> // 定义一个结构体类型 struct Student { int id; char name[20]; int age; }; int main() { // 声明一个结构体变量 struct Student stu; // 给结构体的成员赋值 stu.id = 123; strcpy(stu.name, "Tom"); stu.age = 18; // 打印结构体的成员 printf("Student ID: %d\n", stu.id); printf("Student Name: %s\n", stu.name); printf("Student Age: %d\n", stu.age); return 0; } ``` 以上代码定义了一个名为"Student"的结构体类型,包含id、name和age三个成员。在main函数中,声明了一个名为"stu"的结构体变量,并给成员赋值。然后通过printf函数打印出结构体成员的值。 总的来说,C语言结构体是一种灵活、强大的数据类型,可以用来组织和操作复杂的数据结构,提高程序的可读性和可维护性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值