| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 moc 于 2018-8-19 10:29 编辑  
 
1、结构体简介 
        结构体属于聚合数据类型的一类,它将不同的数据类型整合在一起构成一个新的类型,相当于数据库中一条记录,比如学生结构体,整合了学号,姓名等等信息。结构体的好处就是可以对这些信息进行整体管理操作,类似面向对象中类的属性。他也是一种数据类型,也是固定内存块旳大小,一个模子。 
2、C语言结构体  
①语法1 
                struct 结构体名称{  
                        数据类型 member1;  
                        数据类型 member2;  
                };  
这种方式在声明结构体变量时为:struct 结构体名称 结构体变量名 。 
②语法2 
                typedef struct 结构体名称{  
                        数据类型 member1;  
                        数据类型 member2;  
                }结构体名称别名;  
这种方式在声明结构体变量时有两种方式。 
        第一种:struct 结构体名称 构体变量名  
        第二种:结构体名称别名 结构体变量名 
原因:这里使用了typedef关键字,此关键字的作用就是声明数据类型的别名,方便用户编程,所以这里用了之后,结构体名称别名就相当于struct 结构体名称。在声明结构体变量时,就无需写struct了。 
③语法3 
                struct 结构体名称{  
                        数据类型 member1;  
                        数据类型 member2;  
                }结构体变量名; 
 
相当于: 
 
                struct 结构体名称{  
                        数据类型 member1;  
                        数据类型 member2;  
                };  
                struct 结构体名称 结构体变量名; 
这种方式既定义了结构体名称,同时声明了一个结构体变量名。在其它地方也可以通过struct 结构体来再次声明其它变量,而第四种方法则不可以。 
④语法4 
                struct {  
                        数据类型 member1;  
                        数据类型 member2;  
                }结构体变量名; 
此方式是匿名结构体,在定义时同时声明2个结构体变量,但不能在其它地方声明,因为我们无法得知该结构体的标识符,所以就无法通过标识符来声明变量。 
 3、C++语言结构体  
        C++语言结构体语法的C大同小异,声明结构体变量时可以省略struct 其它无变化!  
        具体参照C语言部分,在用到“struct 结构体名称”时,可以简写为“结构体名称”来声明。 
 4、结构体初始化和赋值  
        初始化和数组类似,直接在声明的结构体变量后面={ ... , ... , ...  }为每个成员赋初值。 
        结构体变量的赋值方法有两种:  
                1. 结构体变量.操作 
                2. 结构体指针->操作 
 5、代码示例 
- #include "stdlib.h"
 
 - #include "stdio.h"
 
 - #include "string.h"
 
  
- // 1.定义结构体数据类型  本质固定内存块旳大小
 
 - // 2.c c++ 注意结构体类型定义变量时,c和c++处理不一样 
 
 - // 3.结构体变量内存四字节存放
 
 - typedef struct _Teacher
 
 - {
 
 -         char c1;
 
 -         char name[62];
 
 -         int age;
 
 -         char tile[128];
 
 - }Teacherbak;
 
  
- //结构体变量的赋值方法  .和->
 
 - struct Teacher
 
 - {
 
 -         char name[62];
 
 -         int age;
 
 - }t1 = { "as", 34 }, t2 = {"az", 32};    //
 
  
- struct    //匿名结构体
 
 - {
 
 -         char name[62];
 
 -         int age;
 
 - }t3 = {"sa", 21};
 
  
- void main()
 
 - {
 
 -         //此处用结构体定义变量,告诉编译器为其分配变量
 
 -         struct Teacher t4 = {"asde", 24};
 
 -         printf("大小:%d\n", sizeof(t4));
 
  
-         struct Teacher *p = NULL; //结构体指针
 
 -         p = &t4;
 
  
-         printf("%s\n", t4.name);
 
 -         printf("%d\n", p->age);
 
  
-         system("pause");
 
 - }
 
  复制代码 
 
 |   
 
 
 
 |