结构体与指针的关系

ecc556e07f915330c8d800cc1ffadcfd.png

在C语言中,结构体(Struct)是一种用户自定义的数据类型,它允许您将不同类型的数据项组合在一起,以便形成一个更复杂的数据结构。结构体可以包含多个成员变量,每个成员变量可以是不同的数据类型。而结构体指针则是指向结构体类型的指针,用于操作和访问结构体的成员。下面我们将分别详细解释结构体和结构体指针,并提供相应的示例代码。

1.结构体:

结构体是一种自定义数据类型,用于将不同类型的数据组合在一起。 .定义结构体的语法格式:struct 结构体名 { 成员列表 }; 

#include <stdio.h>


// 定义结构体
struct Student {
    char name[50];
    int age;
    float gpa;
};


int main() {
    // 声明结构体变量
    struct Student student1;


    // 结构体变量赋值
    strcpy(student1.name, "John");
    student1.age = 20;
    student1.gpa = 3.7;


    // 结构体变量访问
    printf("Name: %s\n", student1.name);
    printf("Age: %d\n", student1.age);
    printf("GPA: %.2f\n", student1.gpa);


    return 0;
}

在上述示例中,我们定义了一个名为 Student 的结构体,包含了学生的姓名、年龄和平均成绩。我们声明了一个结构体变量 student1 并对其成员进行赋值。然后,我们通过点运算符 . 访问结构体变量的成员。

2.结构体指针:

结构体指针是指向结构体类型的指针变量,通过该指针可以操作和访问结构体的成员。.定义结构体指针的语法格式:struct 结构体名 *指针变量名;

#include <stdio.h>


// 定义结构体
struct Point {
    int x;
    int y;
};


int main() {
    // 声明结构体指针
    struct Point *ptr;


    // 动态分配内存
    ptr = (struct Point*)malloc(sizeof(struct Point));


    // 结构体指针访问(使用箭头运算符 ->)
    ptr->x = 10;
    ptr->y = 20;


    // 结构体指针打印
    printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y);


    // 释放内存
    free(ptr);


    return 0;
}

在上述示例中,我们定义了一个名为Point 的结构体,表示一个二维坐标点。我们声明了一个结构体指针 ptr 并使用 malloc() 动态分配了结构体的内存。通过结构体指针 ptr,我们可以使用箭头运算符&gt; 来访问和修改结构体的成员。使用结构体和结构体指针,我们可以更灵活地组织和访问复杂的数据结构。

==========

往期回顾:

琢磨了一天的CAN协议

什么是Modbus协议?

蓝桥杯付费视频更新进度通知

GD32F1硬件开发指南之复位电路

个人对STM32 SysTick的总结(寄存器操作)

==========

作者:吃瓜面包酱

平台:51CTO博客

原文:点击阅读原文

5a3d67d7809b65dc606ac7e0e5bd50cd.png

084434df06df203b4f6c658778935eb8.png

75639f7149a487b3a98a87f6d01472b9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值