结构体(Structure),简称“struct”,是一种复合数据类型,它允许开发者将多个不同类型的数据项组合成一个单一的实体
使用结构体
定义
struct 结构体名 {
数据类型 数据名;
数据类型 数据名;
数据类型 数据名;
};注意末尾的符号
//实现
struct Person {
char name[50];
int age;
float height;
};
声明
格式
struct 结构体名 别名;
//实例
struct Person person1, person2;
初始化
定义时初始化
struct Person person1 = {"Alice", 30, 5.5f};
定义后初始化
struct Person person1;
person1.结构体内的数据名=数据
使用数据
访问结构体成员:使用点操作符(.)来访问结构体变量的字段。
printf("Name: %s\n", person1.name); // 访问person1的name字段
结构体指针
指针 -> 数据名 实现访问结构体中的数据
struct Person *ptr;
struct Person person = {"Alice", 30, 5.5f};
ptr = &person; // ptr now holds the address of person
// Accessing members through a pointer
printf("Name: %s\n", ptr->name); // Arrow operator (->) is used
printf("Age: %d\n", ptr->age);
printf("Height: %.2f\n", ptr->height);
结构体函数
#include <stdio.h>
// 定义一个结构体
struct Point {
int x;
int y;
};
// 一个接受结构体参数的函数
void printPoint(struct Point p) {
printf("Point: (%d, %d)\n", p.x, p.y);
}
int main() {
struct Point pt = {3, 4};
// 调用函数并传递结构体变量
printPoint(pt);
return 0;
}
typedef
作用为数据类型取别名
格式
typedef 数据类型 新名;
如
typedef int *IntPtr;
使用
IntPtr ptr = &a;
如2
typedef struct {
int x;
int y;
} Point;
使用
Point p1, p2;