what is the difference between pointer , reference and dereference in c?
There's no explicit reference type in C like in C++. Anywhere anybody says "reference" in context of C language you can assume a pointer.