数据结构1-结构体
结构体:
在C语言中,*结构体(struct)*指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
结构体定义
结构体:将不同类型的数据封装成一种组合型的数据结构。
例如:
1 | struct stu |
结构体变量
在定义结构体体时可以同时对结构体变量定义以及赋值:
只定义结构体:
1
2
3
4
5struct stu
{
int id;
char name[21];
};定义结构体后定义变量
1
2
3
4
5
6struct stu //开始定义结构体
{
int id;
char name[21];
};//结构体定义结束
struct stu boy1;//定义结构体变量结构体定义时同时定义结构体变量
1
2
3
4
5struct stu //开始定义结构体
{
int id;
char name[21];
}boy1;//结构体定义结束
结构体变量成员引用
结构体变量引用使用 . (结构体成员运算符)在所有运算符中优先级最高。
例如:
1 | boy1.id //学号 |
结构体变量的初始化
结构体变量初始化可以在定义时初始化,亦可以对结构体变量的单个成员进行赋值。
- 定义结构体变量同时进行初始化或者是
1
2
3
4
5struct stu //开始定义结构体
{
int id;
char name[21];
}boy1={1,"xiaoming"};//结构体定义结束1
2
3
4
5
6struct stu //开始定义结构体
{
int id;
char name[21];
};//结构体定义结束
struct stu boy1={1,"xiaoming"};//结构体定义结束 - 对结构体变量成员赋值
1
2
3
4
5
6
7
8struct stu //开始定义结构体
{
int id;
char name[21];
};//结构体定义结束
struct stu boy1;//结构体定义结束
boy1.id=1;
strcpy(boy1.name,"xiaoming"); - 对于相同类型的结构体,变量之间可以直接赋值
1
2
3
4
5
6struct stu //开始定义结构体
{
int id;
char name[21];
}boy1={1,"xiaoming"},boy2;//结构体定义结束
boy2=boy1;
结构体数组
定义:
1 | struct stu //开始定义结构体 |
使用方法和数组变量方法类似
结构体指针
- 指向结构体变量的指针:注意p两边的括号不可少,因为.的优先级大于,如果不加括号就成了*(p.name)。这是错误的!
1
2
3
4
5
6
7
8
9
10
11
12struct stu //开始定义结构体
{
int id;
char name[21];
}boy1={1,"xiaoming"};//结构体定义结束
struct stu *p;//定义指向结构体变量的指针
p=&boy1;//指向结构体变量
printf("%s\n",(*p).name);//通过指针访问结构体变量成员
```c
访问结构体变量成员的语句是:
```c
(*p).name
或者是
1 | p->name |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 klzy.xyz!
