עבור לתוכן

מצביע למערך דו מימדי (ב-C)

Featured Replies

פורסם

    int a[2][2] = { {1,2},
{3,4} };
printf("%d %d", a, *a);


למה זה מדפיס את אותו ערך (אותה כתובת בזיכרון) פעמיים?

פורסם

כי ב-a יש את הכתובת של ההתחלה של המערך הדו מימדי וב-a* יש את הכתובת של ההתחלה של המערך החד מימדי שנמצא במערך הדו מימדי. מדובר למעשה באותו התא. תחשוב על מערך דו מימדי כעל מערך חד מימדי ארוך. המערך שלך למעשה נראה ככה: 1,2,3,4 כמערך חד מימדי. אז a מצביע על המערך 1,2,3,4 ואילו a* מצביע על המערך 1,2.

פורסם
  • מחבר

נראה לי שהבנתי :)

תודה!

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים