logo

const Pointer ב-C

מצביעים קבועים

מצביע קבוע ב-C לא יכול לשנות את הכתובת של המשתנה שאליו הוא מצביע, כלומר, הכתובת תישאר קבועה. לכן, אנו יכולים לומר שאם מצביע קבוע מצביע על משתנה כלשהו, ​​אז הוא לא יכול להצביע על שום משתנה אחר.

תחביר של מצביע קבוע

 *const ; 

הצהרת מצביע קבוע ניתנת להלן:

str ל-int
 int *const ptr; 

בואו נבין את המצביע הקבוע באמצעות דוגמה.

 #include int main() { int a=1; int b=2; int *const ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; } 

בקוד למעלה:

  • אנו מכריזים על שני משתנים, כלומר, a ו-b עם הערכים 1 ו-2, בהתאמה.
  • אנו מכריזים על מצביע קבוע.
  • ראשית, אנו מקצים את הכתובת של המשתנה 'a' למצביע 'ptr'.
  • לאחר מכן, אנו מקצים את הכתובת של המשתנה 'b' למצביע 'ptr'.
  • לבסוף, אנו מנסים להדפיס את הערך של המשתנה שמצביע על ידי 'ptr'.

תְפוּקָה

const Pointer ב-C

בפלט לעיל, אנו יכולים לראות שהקוד לעיל מייצר את השגיאה 'הקצאה של משתנה לקריאה בלבד 'ptr''. זה אומר שלא ניתן לשנות את הערך של המשתנה 'ptr' ש-'ptr' מחזיק. בקוד לעיל, אנו משנים את הערך של 'ptr' מ-&a ל-&b, מה שלא אפשרי עם מצביעים קבועים. לכן, אנו יכולים לומר שהמצביע הקבוע, המצביע על משתנה כלשהו, ​​אינו יכול להצביע על משתנה אחר.

מצביע לקבוע

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

תחביר של מצביע לקבוע

 const * 

הצהרת מצביע לקבוע ניתנת להלן:

 const int* ptr; 

בואו נבין דרך דוגמה.

    ראשית, נכתוב את הקוד שבו אנו משנים את הערך של מצביע
 #include int main() { int a=100; int b=200; const int* ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%u',ptr); return 0; } 

בקוד למעלה:

  • אנו מצהירים על שני משתנים, כלומר, a ו-b עם הערכים 100 ו-200 בהתאמה.
  • אנו מכריזים על מצביע לקבוע.
  • ראשית, אנו מקצים את הכתובת של המשתנה 'a' למצביע 'ptr'.
  • לאחר מכן, אנו מקצים את הכתובת של המשתנה 'b' למצביע 'ptr'.
  • לבסוף, אנו מנסים להדפיס את הערך של 'ptr'.

תְפוּקָה

const Pointer ב-C

הקוד שלמעלה פועל בהצלחה, והוא מציג את הערך של 'ptr' בפלט.

  • כעת, נכתוב את הקוד בו אנו משנים את הערך של המשתנה שאליו מצביע המצביע.
 #include int main() { int a=100; int b=200; const int* ptr; ptr=&b; *ptr=300; printf('Value of ptr is :%d',*ptr); return 0; } 

בקוד למעלה:

כיצד לבצע סקריפט
  • אנו מצהירים על שני משתנים, כלומר 'a' ו-'b' עם הערכים 100 ו-200 בהתאמה.
  • אנו מכריזים על מצביע לקבוע.
  • אנו מקצים את הכתובת של המשתנה 'b' למצביע 'ptr'.
  • לאחר מכן, אנו מנסים לשנות את הערך של המשתנה 'b' באמצעות המצביע 'ptr'.
  • לבסוף, אנו מנסים להדפיס את הערך של המשתנה אשר מצביע על ידי המצביע 'ptr'.

תְפוּקָה

const Pointer ב-C

הקוד לעיל מציג את השגיאה 'הקצאת מיקום לקריאה בלבד '*ptr''. שגיאה זו פירושה שאיננו יכולים לשנות את הערך של המשתנה שאליו מצביע המצביע.

מצביע קבוע לקבוע

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

תחביר

 const * const ; 

הצהרת מצביע קבוע לקבוע ניתנת להלן:

 const int* const ptr; 

בואו נבין דרך דוגמה.

 #include int main() { int a=10; int b=90; const int* const ptr=&a; *ptr=12; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; } 

בקוד למעלה:

  • אנו מצהירים על שני משתנים, כלומר 'a' ו-'b' עם הערכים 10 ו-90, בהתאמה.
  • אנו מכריזים על מצביע קבוע לקבוע ואז מקצה את הכתובת של 'a'.
  • אנו מנסים לשנות את הערך של המשתנה 'a' באמצעות המצביע 'ptr'.
  • לאחר מכן אנו מנסים להקצות את הכתובת של המשתנה 'b' למצביע 'ptr'.
  • לבסוף, אנו מדפיסים את הערך של המשתנה, אשר מצביע על ידי המצביע 'ptr'.

תְפוּקָה

const Pointer ב-C

הקוד לעיל מציג את השגיאה 'הקצאת מיקום לקריאה בלבד '*ptr'' ו'הקצאת משתנה לקריאה בלבד 'ptr''. לכן, אנו מסיקים שהמצביע הקבוע לקבוע אינו יכול לשנות לא כתובת ולא ערך, מה שמצביע על ידי מצביע זה.