我正在翻阅一本研究链表的书,看到了
if( *head == NULL){
}else if ( (*head)->next == (node *) NULL ){
}
NULL
和(node *) NULL
的区别是什么?它们可以互换使用吗?
typedef struct nodeType{
int info;
struct nodeType *next;
}node;
在比较指针时,不考虑类型,因此毫无意义。
如果这是一本介绍性的书,作者可能只是为了清楚起见才把它包括在内。如果这不是一本入门书,那么作者要么有一种奇怪的编码风格,要么不知何故认为它更有意义。
它们可以互换使用。但是,像您的代码那样对NULL
进行类型转换是非标准的,也是不寻常的。
无需铸造。