כמה סיבות:
הינה 3 מהם: 1.כשאתה שולח מערך עם 1000 תאים לפונקציה, אז הוא מעתיק את המערך, וזה תופס זיכרון, ואם את שולח מצביע אז הוא לא מעתיק את המערך, אלה שולח מצביע. 2.אם אתה שולח משתנים לפונקציה ומשנה אותם, לאחר סיום הפונקציה הם לא ישתנו. אבל אם אתה שולח מצביע לפונקציה אז הערכים ישתנו (כי אתה משנה את המשתנה המקורי ולא עותק שלו). 3.אפשר לתת למשתנה/פונקציה/כל חלק בתוכנית כמה שמות.