Why NULL and not nil? - removeItemAtPath:path error:NULL


I am confused about the usage of NULL vs nil. The code sample on page 270 reads:

I would expect for nil to be sent rather then NULL. I did some internet searches and found plenty of sample of folks sending NULL to this method. The docs I read state:

On input, a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.[/quote]

From reading Objective-C Programming I was under the impression that NULL was only to be used for C language and nil was to be used for any Objective-C code and that bad things will happen if you mix them up.

What am I missing here? Why is it okay to send NULL instead of nil in this case? Thanks for any insight, or rules-of-thumb that I can use when deciding to send NULL vs nil.