学习C语言

结构体

结构体指针

在C或C++编程中,结构体指针是指向结构体的指针。结构体是一种用户定义的数据类型,可以包含多个数据成员。结构体指针则是指向这种结构体数据的指针,允许你间接访问结构体中的成员。

结构体定义

struct Person {
    char name[50];
    int age;
};

在C语言或C++中,定义结构体时并不会自动分配内存给具体的结构体实例。定义结构体只是告诉编译器如何组织数据,并为你创建一个新的数据类型。
只是声明了一个名为Person的结构体类型。但是没有分配任何实际的内存。只是定义了一个新的数据类型,并没有创建任何具体的Person实例。

定义结构体变量和指针

struct Person p1;
struct Person *ptr;

这里 p1 是一个 Person 类型的结构体变量,而 ptr 是一个指向 Person 类型结构体的指针。

使用结构体指针

可以让指针ptr指向结构体变量p1,并通过指针访问结构体成员。

prt = &p1

动态分配结构体

struct Person *ptr = (struct Person *)malloc(sizeof(struct Person));

这行代码在C/C++编程中用于动态分配内存,以存储一个Person结构体的实例,并返回一个指向该内存区域的指针。
ptr将指向堆中分配的内存,这段内存足以存储一个Person结构体实例。

总结
1.定义结构体:只是在编译时定义了一个新的数据类型,没有分配内存。
2.声明结构体变量:在栈上为结构体分配内存,用于存储结构体的成员。

struct Person p1;

3.动态分配内存;通过malloc在堆上分配内存,可以在运行时分配任意数量的结构体实例。

struct Person *ptr = (struct Person *)malloc(sizeof(struct Person));
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容