|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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");
- }
复制代码
|
|