אם היית כותב int * mypointer; *mypointer=0 אז זה היה מכניס אפס לכתובת זבל שמוכלת במצביע, ובסבירות גבוהה גורם לאקספשן ולסגירה של התכנית. מה שאתה רשמת מכניס NULL למצביע עצמו, מכניס 0 לכתובת במחסנית שהיא למעשה המצביע הזה.
כפי שהראתי- בפיסת קוד הראשונה אתה מצהיר עליו יחד עם הכתובת NULL (כלומר אתה מאתחל אותו לכתובת אפס עוד בהתחלה). אתה יכול לשנות את הכתובת מתי שאתה רוצה (ראה פיסת קוד שניה). בהתחלה זה זבל, אחר כך אתה משנה את כתובתו לNULL.
בפיסת קוד השלישית אתה ניגש לאן שP מצביע ועושה השמה.