gby 发表于 2020-4-1 16:27:35

关于结构体的一个小问题

本帖最后由 gby 于 2020-4-1 16:29 编辑

在做贪吃蛇游戏的时候的一个困惑:
(源代码来源知乎)


typedef struct SNAKE//蛇身的一个节点
{
        int x;
        int y;
        struct SNAKE *next;/*此处?????????*/
}snake;

结构体中的自引用有什么用?
为什么这里next是变量不符合语法,但是next是指针,为什么就不会造成无限循环了?

gby 发表于 2020-4-1 16:36:28

网上搜到只说是指针长度是确定的
但是还是没理解怎么个意思
有大佬能解释一下吗

KevinHu 发表于 2020-4-1 16:41:38

指针只是存放一个地址,不会造成循环。
这个结构是单链表的结构。
详情:
https://www.bilibili.com/video/BV17s411N78s?p=45
https://www.bilibili.com/video/BV1jW411K7yg?p=10

gby 发表于 2020-4-1 16:42:37

KevinHu 发表于 2020-4-1 16:41
指针只是存放一个地址,不会造成循环。
这个结构是单链表的结构。
详情:


好的,谢谢

gby 发表于 2020-4-1 16:52:35

KevinHu 发表于 2020-4-1 16:41
指针只是存放一个地址,不会造成循环。
这个结构是单链表的结构。
详情:


如果按我这个例子来讲
这个指针SNAKE存放的是谁的地址呢

KevinHu 发表于 2020-4-1 16:54:56

这个指针是一个存放snake结构体的指针,也就是指针要么指向一个snake结构体,要么指向NULL

gby 发表于 2020-4-1 16:58:11

KevinHu 发表于 2020-4-1 16:54
这个指针是一个存放snake结构体的指针,也就是指针要么指向一个snake结构体,要么指向NULL

懂了!谢谢
页: [1]
查看完整版本: 关于结构体的一个小问题