【前言】
前言开始:
前言
前言结束(不知道说啥)
【什么是结构体】
所谓结构体,就是将一些数据整合到一起(是C++中类的前身)
结构体中还能嵌套一个结构体(一会儿讲)
【定义结构体】
定义结构体的方法如下:
[C] 纯文本查看 复制代码 struct structureName
{
{data}
}; //注意!有分号!
例如,给用户做一个结构体
[C] 纯文本查看 复制代码 struct user
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
};
【定义结构体变量】
定义结构体变量的方法有以下三种:
1.在结构体后定义
[C] 纯文本查看 复制代码 struct user
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}USER;
2.在其他地方定义
[C] 纯文本查看 复制代码 struct user
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
};
struct user USER;
3.定义时省略名称
[C] 纯文本查看 复制代码 struct
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}USER;
【结构体の引用方法】
和类一样,名称.数据
比如:
[C] 纯文本查看 复制代码 struct
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}USER;
int main()
{
USER.userName = "蒟蒻";
USER.userEmail = "11451451890@homo.com";
USER.userPassword = "11451451890Homo";
}
但是,不能把它作为一个整体,例如:
[C] 纯文本查看 复制代码 printf("%s%s%S\n",USER); //错误!
【结构体の初始化】
和变量一样,结构体也可以初始化:
[C] 纯文本查看 复制代码 struct
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}USER = {"蒟蒻","11451451890","11451451890@homo.com"};
【结构体数组】
和结构体一样,只不过结构体变量变成了数组:
[C] 纯文本查看 复制代码 struct
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}USER[114514]; //114514也可以不填
【结构体数组の初始化】
初始化方法和结构体变量一样,只不过数据变多了
[C] 纯文本查看 复制代码 struct
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}USER[5] = {
{"蒟蒻","11451451890","11451451890@homo.com"},
{"homo","11451451890","11451451890@homo.com"},
{"TEST","11451451890","11451451890@homo.com"},
{"user","11451451890","11451451890@homo.com"},
{"恶臭","11451451890","11451451890@homo.com"}};
输出的方法有所不同:
[C] 纯文本查看 复制代码 int main()
{
for (int i = 0; i < 5;i++)
{
printf("name:%s password:%s email:%s\n",USER[i].username,USER[i].password,USER[i].email);
}
}
【指针结构体】
定义的方法和结构体相同,定义的方法不同
[C] 纯文本查看 复制代码 struct
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
}*USER;
//或者。。。
struct user
{
char *userName; //用户名
char *password; //密码
char *email; //邮箱
};
struct user *USER;
引用方法也有点不同:
[C] 纯文本查看 复制代码 (*USER).userName = NULL;
或者:
[C] 纯文本查看 复制代码 USER->userName = NULL;
【结构体嵌套】
举个例子就明白了
[C] 纯文本查看 复制代码 struct A
{
char a1;
char b1;
};
struct B
{
char c1;
char d1;
struct A a;
}b;
引用A的方法如下:
[C] 纯文本查看 复制代码 b.a.a1 = NULL;
简单吧,拜拜
|