אתה יכול להדפיס מצביע?
אתה יכול להדפיס מצביע?

וִידֵאוֹ: אתה יכול להדפיס מצביע?

וִידֵאוֹ: אתה יכול להדפיס מצביע?
וִידֵאוֹ: ככה זה כשיש לך חברה רוסיה 2024, נוֹבֶמבֶּר
Anonim

הדפסת מצביעים . אתה יכול להדפיס מצביע ערך באמצעות printf עם מפרט הפורמט %p. לעשות לכן, אתה צריך להמיר את מצביע ל הקלד void * תחילה באמצעות גבס (ראה להלן עבור void * מצביעים ), אם כי על מכונות שאין להן ייצוגים שונים עבור שונים מַצבִּיעַ סוגים, ייתכן שלא יהיה צורך בכך.

השאלה היא גם איך אני מדפיס את כתובת ה-printf שלי?

ל הדפס הזיכרון כתובת , אנחנו להשתמש מפרט הפורמט '%p' ב ג. ל הדפס ה כתובת של א משתנה, אנחנו להשתמש מפרט "%p". ב שפת תכנות C. ישנן שתי דרכים להשיג את כתובת של המשתנה: על ידי שימוש ב " כתובת אופרטור של" (&).

בנוסף, מה קורה כשאתה מוסיף למצביע? א מַצבִּיעַ תוספת פירושה מעבר לאלמנט המחודד הבא. אז הכתובת מוגברת לפי גודל האלמנט המחודד. הכתובת של ה מַצבִּיעַ יוגדל ב-sizeof(T) כאשר T הוא הסוג שאליו הצביע. אז עבור אינט, ה מַצבִּיעַ יוגדל לפי sizeof(int).

באופן דומה, אנשים שואלים, איך אני מוצא את הערך של מצביע?

1 תשובה. ל לקבל ה ערך של א מַצבִּיעַ , פשוט בטל הפניה ל מַצבִּיעַ . int *ptr; int ערך ; *ptr = 9; ערך = *ptr; ערך עכשיו 9.

האם ניתן להוסיף מספר שלם למצביע?

מַצבִּיעַ אריתמטיקה ומערכים. לְהוֹסִיף an מספר שלם אל א מַצבִּיעַ או להפחית את an מספר שלם מ מַצבִּיעַ . ההשפעה של p+n כאשר p הוא a מַצבִּיעַ ו-n הוא an מספר שלם הוא לחשב את הכתובת השווה ל-p פלוס n כפול הגודל של כל מה ש-p מצביע עליו (זו הסיבה int * מצביעים וצ'אר* מצביעים אינם זהים).

מוּמלָץ: