在C语言中,结构体是一种包含不同数据类型的自定义数据类型。常用的结构体操作有:
1. 定义结构体
定义结构体可以使用`struct`关键字,语法格式如下:
```c
struct 结构体名称 {
数据类型 成员名称1;
数据类型 成员名称2;
//...
};
```
例如:
```c
struct Student {
char name[20];
int age;
float score;
};
```
2. 初始化结构体
初始化结构体可以在定义时进行,语法格式如下:
```c
struct 结构体名称 结构体变量名 = {成员1初始值, 成员2初始值, ...};
```
例如:
```c
struct Student stu1 = {"小明", 18, 90.5};
```
3. 访问结构体成员
访问结构体成员需要使用`.`运算符,格式如下:
```c
结构体变量名.成员名称
```
例如:
```c
printf("姓名:%s,年龄:%d岁,成绩:%.1f分", stu1.name, stu1.age, stu1.score);
```
4. 结构体数组
结构体数组表示多个相同类型的结构体变量,例如:
```c
struct Student stuArr[3] = {
{"小明", 18, 90.5},
{"小红", 17, 89.0},
{"小刚", 18, 95.0}
};
```
访问结构体数组中的某个结构体变量的成员:
```c
printf("%s的成绩是%.1f分", stuArr[0].name, stuArr[0].score);
```
5. 结构体指针
获取结构体变量的地址可以使用`&`运算符,格式如下:
```c
&结构体变量名
```
获取结构体指针可以使用`*`运算符,格式如下:
```c
struct 结构体名称 *结构体指针变量名;
```
例如:
```c
struct Student *pStu = &stu1;
```
通过结构体指针访问结构体成员使用`->`运算符:
```c
printf("姓名:%s,年龄:%d岁,成绩:%.1f分", pStu->name, pStu->age, pStu->score);
```
6. 结构体作为函数参数
可以将结构体作为函数参数进行传递,例如:
```c
void printStudent(struct Student stu) {
printf("姓名:%s,年龄:%d岁,成绩:%.1f分", stu.name, stu.age, stu.score);
}
```
或者使用结构体指针作为函数参数:
```c
void printStudent(struct Student *pStu) {
printf("姓名:%s,年龄:%d岁,成绩:%.1f分", pStu->name, pStu->age, pStu->score);
}
```
7. 结构体嵌套
结构体中可以嵌套其他的结构体,例如:
```c
struct Date {
int year;
int month;
int day;
};
struct Student {
char name[20];
int age;
float score;
struct Date birthday; // 嵌套了日期结构体
};
```
访问嵌套结构体的成员可以使用`.`和`->`运算符,例如:
```c
printf("%s的生日是%d年%d月%d日", stu1.name, stu1.birthday.year, stu1.birthday.month, stu1.birthday.day);
```
标签:常用,stu1,struct,pStu,name,score,操作,结构,语言 From: https://www.cnblogs.com/full-stack-linux-new/p/17342476.html