关于C语言指针的问题

发布于 2021-11-29 22:33:38 字数 3809 浏览 775 评论 6

struct film{

    char title[TSIZE];

    int rating;

};

typedef struct film Item;

typedef struct node{

    Item item;

    struct node* next;

}Node;

typedef Node* List;

在初始化  List movies 时,书上说这只是建立了一个列表,而不是一个指向节点的指针,该如何理解?本质上,movies就是一个指向node的结构指针吧?

后面的函数

void InitializeList(List* plist)

{

    *plist = NULL;

}

bool ListIsEmpty(const List* plist)

{

    if(*plist == NULL)

        return ture;

    else

        return false;

}

为什么第一个函数使用movies的指针InitializeList(&movies);

第二个函数直接使用movies参数ListIsEmpty(movies);

在运行时两个函数内部的(*plist)的值应该是不不同的吧,为什么第一个函数初始化后第二个函数可以进行比较判断?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

夜无邪 2021-12-04 21:05:15

回复
我说的是
@乌鸦低语 你修改的是正确的.

深巷少女 2021-12-04 21:04:49

回复
貌似是书错了……c primer plus 这可是知名图书啊……

小瓶盖 2021-12-04 21:02:58

回复
3Q

坏尐絯 2021-12-04 20:56:24

回复
能让人掌握就行,哈哈

复古式 2021-12-04 11:57:08

回复
不要管书上怎么说,C语言函数参数永远都是值传递的。

毁梦 2021-12-03 16:47:16

要么ListIsEmpty定义错了,应该是bool ListIsEmpty(const List plist)

要么使用ListIsEmpty的方式错了,应该是ListIsEmpty(&movies)

你的问题其实就是你提到的“列表“具体是什么

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文