Yoni Kibrik
New member
שאלה על חשבון במצבעים ב cpp
שלום, אני לא מבין את החלק של החשבון במצבעים. בספר שלי כתוב כך: נניח ש p1 הוא מצביע לשלם, שערכו 2000 (כלומר, הוא מכיל את הכתובת 2000). בהנחת שלמים בני 32 סביות, לארח הפעלת הביטוי : ;++p1 יכיל p1 את הערך 2004 ולא 2001! כל קידום של p1 יכוון אותו לשלם הבא. עכשיו אני לא מבין את זה בדיוק ואין שם דוגמה לזה אלה רק דוגמה יותר מורכבת עם מצבעים למערכים. מישהו יכול לתת לי דוגמה לקוד שעושה את מה שכתוב פה? פשוט מה שעשיתי זה כך:
שלום, אני לא מבין את החלק של החשבון במצבעים. בספר שלי כתוב כך: נניח ש p1 הוא מצביע לשלם, שערכו 2000 (כלומר, הוא מכיל את הכתובת 2000). בהנחת שלמים בני 32 סביות, לארח הפעלת הביטוי : ;++p1 יכיל p1 את הערך 2004 ולא 2001! כל קידום של p1 יכוון אותו לשלם הבא. עכשיו אני לא מבין את זה בדיוק ואין שם דוגמה לזה אלה רק דוגמה יותר מורכבת עם מצבעים למערכים. מישהו יכול לתת לי דוגמה לקוד שעושה את מה שכתוב פה? פשוט מה שעשיתי זה כך:
#include <iostream.h> #include <stdlib.h> int main() { int *x, i; i=2000; x=&i; x++; cout<<x; system("PAUSE"); return 0; }
והפלט הוא לא 2004 אלא: 0x254fdd4 ועים אני עושה כך:#include <iostream.h> #include <stdlib.h> int main() { int *x, i; i=2000; x=&i; x++; cout<<*x; system("PAUSE"); return 0; }
הפלט הוא גם לא 2004 אלא: 39124436 מה אני עושה לא נכון? תודה.