2012-03-22 4 views
7

나는이 책을 통해가는 다음 행 C에서 (node ​​*) NULL의 의미는 무엇입니까?

if(*head == NULL){ 

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

} 

가 교대로 사용할 수 있습니다 NULL(node *) NULL의 차이점은 무엇입니까

을 목록을 링크 보았다 공부?

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

코드 작성자는 자신이하는 일을 모르고 있음을 의미합니다. 'NULL'은 캐스트가 필요 없습니다. – asveikau

+2

이것은 단지 난독 화입니다. 포인터는 조건문에서 'NULL'과 비교할 필요가 없습니다. 'if (* head)'와'if ((* head) -> next)'는 완벽하게 동작합니다. –

답변

8

포인터를 비교할 때 유형은 고려되지 않으므로 무의미합니다.

작성자는 입문서 인 경우 명확하게하기 위해 포함 시켰을 가능성이 높습니다. 입문서가 아닌 경우 저자는 이상한 코딩 스타일을 가지고 있거나 더 의미가 있다고 생각합니다.

+4

나는 당신이 거기에서 한 것을 본다 ... – Supr

+0

@Supr 무의미한 것은 단지 쓸데없는 말이다. – Corbin

7

이 둘은 서로 교환하여 사용할 수 있습니다. 그러나 비표준이며 NULL은 코드에서와 같이 유형 변환하는 것이 일반적입니다.

캐스트가 필요하지 않습니다.

관련 문제