כיצד ליישם מצביעים ב- C ++?



מאמר זה יציג בפניכם את מושג המצביעים ב- C ++ ואז יעקוב אחריו באמצעות הדגמה מעשית תומכת.

מצביעים ב- C ++ הוא משתנה המחזיק את הכתובת של משתנה אחר ב- c ++. הכתובת נשמרת במשתנה המצביע ועוזרת ביישום הפניה להתקשרות.

המצביעים הבאים יוסקרו במאמר זה,





החל במאמר זה בנושא מצביעים ב- C ++

תחביר:



סוג נתונים * שם שם דוגמה: int * ptr
  • למשתנה מצביע יש סימן * לפני שמו.
  • מצביע נקרא גם איתור או מחוון.

שימושים של מצביע:

  • הקצאת זיכרון דינמית
  • בתוכניות שונות של מערכים, מבנים ופונקציות

הנה קוד לדוגמא:

# כלול באמצעות מרחב השמות std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

תְפוּקָה:
פלט- מצביעים ב- C ++ - אדוריקה



כיצד לשנות את מסלול Java

הֶסבֵּר:

בתוכנית שלעיל אנו מראים את העבודה הבסיסית של מצביע. יש לנו משתנה שלם מספר עם ערך 17. יש לנו משתנה מצביע ptr מהסוג int. אנו מקצים את כתובת ה- num למצביע ptr.

ראשית אנו מדפיסים את הערך של ptr, כלומר הכתובת. לאחר מכן, אנו מדפיסים את הערך num ובסוף מדפיסים את הערך במיקום המוחזק על ידי המצביע ptr.

ממשיך הלאה עם מאמר זה בנושא מצביעים על C ++

עצות ומערכים:

אנו יכולים לראות את האלמנט הראשון במערך כמצביע, שכן שם המערך מכיל את הכתובת של האלמנט הראשון. אנו יכולים להשתמש במצביע באופן הבא.

הנה קוד לדוגמא:

# כלול באמצעות מרחב שמות std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 תְפוּקָה: 

הֶסבֵּר:

בתוכנית שלעיל אנו מראים את העבודה הבסיסית של מצביע עם מערך. יש לנו מערך arr עם ערכים 5,10,20. יש לנו משתנה מצביע ptr מהסוג int. אנו מקצים את כתובת ה- arr למצביע ptr.

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

ממשיך הלאה עם מאמר זה בנושא מצביעים על C ++

מצביעים אפסיים:

יש את סוג המצביעים שאין להם ערך ומחזיקים ערך null

דוגמא :

int * ptr = NULL

הם מאוד שימושיים במבני נתונים כמו רשימה מקושרת.

ממשיך הלאה עם מאמר זה בנושא מצביעים על C ++

מצביעים בטלים:

אלה סוג המצביעים שאין להם סוג החזרה.

ממשיך הלאה עם מאמר זה בנושא מצביעים על C ++

מבצע מצביע אריתמטי:

ניתן לבצע פעולות שונות על מצביעים. להלן מספר סוגים חשובים.

  • מצטבר (++)
  • מופחת (-)
  • ההבדל בין שתי מצביעים (p1-p2)
  • תוספת שלם למצביע (+ או + =)
  • חיסור שלם ממסמן (- או - =)

הנה קוד להדגמה של כמה מהפעולות הבאות:

# כלול באמצעות מרחב שמות std int ראשי () {int arr [3] = {10, 100, 200} int * ptr ptr = arr עבור (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

תְפוּקָה:

הֶסבֵּר:

אנו מדגימים פעולה חשבונית פשוטה של ​​הגדלת משתנה המצביע מוצגת בתוכנית לעיל.

ממשיך הלאה עם מאמר זה בנושא מצביעים על C ++

מצביע למצביע:

בסוג זה של מערכת יש שתי עצות. המצביע הראשון מצביע על המצביע השני והמצביע השני מצביע על המשתנה המחזיק את הערך.

הנה קוד לדוגמא:

# כלול באמצעות מרחב שמות std int ראשי () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

תְפוּקָה:

ממשיך הלאה עם מאמר זה בנושא מצביעים על C ++

מצביע לפונקציות:

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

# כלול באמצעות מרחב שמות std float getAverage (int * arr, int גודל) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


תְפוּקָה

כך אנו מעבירים מצביע לפונקציה.

לפיכך הגענו לסוף מאמר זה בנושא 'מצביעים ב- C ++'. אם ברצונך ללמוד עוד, עיין ב מאת אדוריקה, חברת למידה מקוונת אמינה. נועד לאמן אותך למושגי ליבה מרכזיים ומתקדמים יחד עם מסגרות Java שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.