[学习资料] 结构体内可以包含指向该类型结构体的指针。

[复制链接]
754|3
xinpian101 发表于 2025-9-10 08:58 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
  2. struct AA
  3. {
  4.         int i;
  5.         struct AA  *ab;
  6. } k1,k2;
  7. int main()
  8. {
  9.    /* 我的第一个 C 程序 */
  10.     printf("Hello, World! \n");
  11.         k1.i=3;
  12.         k2.i=4;
  13.         k1.ab =&k2;
  14.         k2.ab =&k1;
  15.     printf("%d \n",k1.i);
  16.     printf("%d \n",k2.i);
  17.     printf("%d \n",k1.ab->i);
  18.     printf("%d \n",k2.ab->i);
  19.    return 0;
  20. }



对于结构体成员变量的访问用符号“.”
对于结构体指针间接的对成员变量访问用“->”
 楼主| xinpian101 发表于 2025-9-10 09:21 | 显示全部楼层
大家用过结构体指针吗
桃花落满山前 发表于 2025-10-30 14:45 | 显示全部楼层
结构体内可包含指向自身类型的指针,这是实现链表、树等数据结构的核心。
原理与应用
原理:指针仅存储地址,不占用结构体完整空间,避免递归定义的大小歧义。
应用:如链表节点,通过自引用指针串联多个结构体实例,实现动态数据存储;树结构中用于指向子节点。
注意:需初始化指针,避免野指针,释放时防止内存泄漏。
这种设计是嵌入式中动态数据管理的基础。
迷雾隐者 发表于 2025-10-31 15:55 | 显示全部楼层
代码中创建了两个结构体变量k1和k2,并相互指向对方,形成了一个循环链。这种结构在实际编程中可以用于实现链表等数据结构。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

130

主题

1651

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部