מה הטעם בשימוש במצביעים ב-C++?
מה הטעם בשימוש במצביעים ב-C++?

וִידֵאוֹ: מה הטעם בשימוש במצביעים ב-C++?

וִידֵאוֹ: מה הטעם בשימוש במצביעים ב-C++?
וִידֵאוֹ: you will never ask about pointers again after watching this video 2024, מאי
Anonim

סיבה אחת לכך השתמשו במצביעים הוא כך שניתן לשנות משתנה או אובייקט בפונקציה שנקראה. ב C++ זה תרגול טוב יותר להשתמש הפניות מאשר מצביעים . אם כי הפניות הן בעצם מצביעים , C++ במידה מסוימת מסתיר את העובדה וגורם לזה להיראות כאילו אתה עובר על ערך.

באופן דומה, אתה עשוי לשאול, מדוע השימוש במצביעים ב-C++ אינו מומלץ?

לִכאוֹב מצביעים בדרך כלל עקוב אחר האובייקטים שהם מצביעים עליהם לצורך ניהול זיכרון. השימוש לרעה ב מצביעים מהווה מקור עיקרי לבאגים: ההקצאה, ההקצאה וההפניה המתמדת שיש לבצע על ידי תוכנית שנכתבת באמצעות מצביעים מציג את הסיכון שיתרחשו דליפות זיכרון.

מלבד למעלה, מתי עלי להשתמש ב-pointers C++? מתי ל להשתמש מה השתמש במצביעים : השתמש במצביעים אם מַצבִּיעַ חשבון או מעבר NULL- מַצבִּיעַ נחוץ. למשל עבור מערכים (שים לב שגישה למערך מיושמת באמצעות מצביע חֶשְׁבּוֹן).

אם לוקחים זאת בחשבון, מה הם היתרונות של שימוש במצביעים?

גדול יתרונות שֶׁל מצביעים הם: (i) הוא מאפשר ניהול של מבנים אשר מוקצים זיכרון באופן דינמי. (ii) הוא מאפשר העברת מערכים ומחרוזות לפונקציות בצורה יעילה יותר. (iii) זה מאפשר להעביר כתובת של מבנה במקום מבנה שלם לפונקציות.

מדוע מצביעים אינם בטוחים?

אבטחה: מאת לֹא מְאַפשֶׁר מצביעים , Java מספקת למעשה רמה נוספת של הפשטה למפתח. אין תמיכת מצביעים הופכת את Java ליותר לבטח מכיוון שהם מצביעים על מיקום זיכרון או משמשים לניהול זיכרון שמאבד את האבטחה כאשר אנו משתמשים בהם ישירות.