Possible Duplicate:
objective c difference between id and void *
While reading through NSZone.h in the Foundation framework I ran across a comment mentioning something being “more like a c style pointer than an id style object”. I realized I don’t understand the difference.
What is the difference between a c style pointer and an id style object?
A C pointer can point at anything – objects, structures, raw bytes, strings, …
A ‘id’ pointer is pointing at an instance of an Objective-C object. ‘id’ is untyped, so it could be pointing at an instance of any class. Something like NSObject* is typed; you know what kind of object it is pointing at.