פורסם 2014 בינואר 2011 שנים int a[2][2] = { {1,2}, {3,4} }; printf("%d %d", a, *a);למה זה מדפיס את אותו ערך (אותה כתובת בזיכרון) פעמיים?
פורסם 2014 בינואר 2011 שנים כי ב-a יש את הכתובת של ההתחלה של המערך הדו מימדי וב-a* יש את הכתובת של ההתחלה של המערך החד מימדי שנמצא במערך הדו מימדי. מדובר למעשה באותו התא. תחשוב על מערך דו מימדי כעל מערך חד מימדי ארוך. המערך שלך למעשה נראה ככה: 1,2,3,4 כמערך חד מימדי. אז a מצביע על המערך 1,2,3,4 ואילו a* מצביע על המערך 1,2.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.