כשאת מכריזה על מצביע מסוג כלשהו (מצביע ל-int במקרה שלך), את צריכה להקצות זיכרון שיכיל את המידע. מה שקורה זה שהמצביע יחזיק את הכתובת בזיכרון שמייצגת את המקום שהוקצה למידע שלך (מקום בגודל של 4 bytes בדרך כלל במקרה של int).
מה שאת עשית זה לשים את הכתובת 0 בתור הכתובת בה הוקצה המקום בזיכרון למידע שלך. זה כמובן לא נכון כי:
1. לא באמת הקצית מקום בזיכרון
2. גם אם היית מקצה, לא היית מקבלת 0 ככתובת.
ספציפית 0 במצביע נקרא null pointer. הכתובת 0 היא לא כתובת חוקית למצביע.
למעשה, בדרך כלל נשים 0 (או null) במצביע כדי שנוכל בשלב יותר מאוחר בקוד לוודא שבאמת איתחלנו את המצביע (נבדוק שהוא שונה מ-0 או null) לפני שננסה להשתמש בו.