我正在使用 C 语言中的双链表,我遇到了一些我意识到我总是被接受为事实的东西,或者曾经知道答案但现在已经忘记了。当我再次开始使用指针时,这经常发生在我身上,我最终不得不每次都重新学习它们。
这是我的设置的基础知识:
int main(void)
{
video *head = NULL;
video *tail = NULL;
char *buffer = NULL;
buffer = (char*)malloc(sizeof(MAX_TITLE_LENGTH));
printf("Enter a title: ");
fgets(buffer, MAX_TITLE_LENGTH, stdin);
insert(buffer, &head, &tail);
}
我有一个结构:
typedef struct video
{
char title[MAX_TITLE_LENGTH];
struct video *prev;
struct video *next;
}video;
插入原型:
int insert (char *title, video **head, video **tail);
我想知道为什么我必须专门传递视频*的地址。
我知道我传递字符的方式是传递字符串开头的内存地址。为什么我必须再次取消引用头部和尾部才能访问它们的值?
老实说,这比我想象的要简单,我确信这一点,而且我的大脑在考虑指针时处于一个糟糕的位置。
谁能把它弄松?
谢谢。