【问题标题】:what does (node *) NULL mean in C?(node *) NULL 在 C 中是什么意思?
【发布时间】:2012-03-22 03:21:58
【问题描述】:

我正在阅读一本研究链接列表的书,并看到了这些行

if( *head == NULL){

}else if ( (*head)->next == (node *) NULL ){

}

NULL(node *) NULL 有什么区别,它们可以互换使用吗?

typedef struct nodeType{
    int info;
    struct nodeType *next;
}node;

【问题讨论】:

  • 这意味着代码的作者不知道他在做什么。 NULL 不需要演员表。
  • 这只是混淆。指针不需要在条件中与 NULL 进行比较。 if(*head) if ((*head)->next) 会做得很好。

标签: c pointers linked-list


【解决方案1】:

比较指针时,不考虑类型,所以没有意义。

如果这是一本介绍性的书,作者可能只是为了清楚起见而将其包括在内。如果这不是一本介绍性的书,那么作者要么有一种奇怪的编码风格,要么认为它更有意义。

【讨论】:

  • @Supr Pointless 只是我认为没用的词:)
【解决方案2】:

它们可以互换使用。但是像您的代码那样对NULL 进行类型转换是非标准且不寻常的。

不需要演员表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2013-08-05
    • 2013-03-09
    • 1970-01-01
    • 2018-06-21
    • 2022-11-14
    • 2017-05-25
    相关资源
    最近更新 更多