logo

مؤشر const في C

مؤشرات ثابتة

لا يمكن للمؤشر الثابت في لغة C تغيير عنوان المتغير الذي يشير إليه، أي أن العنوان سيظل ثابتًا. ولذلك يمكننا القول أنه إذا كان المؤشر الثابت يشير إلى متغير ما، فإنه لا يمكن أن يشير إلى أي متغير آخر.

بناء جملة المؤشر الثابت

 *const ; 

ويرد أدناه إعلان مؤشر ثابت:

 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 في 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 في 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; } 

في الكود أعلاه:

  • نعلن عن متغيرين، أي 'أ' و'ب' بالقيمتين 100 و200 على التوالي.
  • نعلن عن مؤشر ثابت.
  • نقوم بتعيين عنوان المتغير 'b' للمؤشر 'ptr'.
  • ومن ثم نحاول تعديل قيمة المتغير 'b' من خلال المؤشر 'ptr'.
  • وأخيرًا، نحاول طباعة قيمة المتغير الذي يشير إليه المؤشر 'ptr'.

انتاج |

مؤشر const في 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; } 

في الكود أعلاه:

  • نعلن عن متغيرين، أي 'أ' و'ب' بالقيمتين 10 و90 على التوالي.
  • نعلن عن مؤشر ثابت إلى ثابت ثم نقوم بتعيين عنوان 'أ'.
  • نحاول تغيير قيمة المتغير 'a' من خلال المؤشر 'ptr'.
  • ثم نحاول تعيين عنوان المتغير 'b' للمؤشر 'ptr'.
  • وأخيرًا، نقوم بطباعة قيمة المتغير الذي يشار إليه بالمؤشر 'ptr'.

انتاج |

مؤشر const في C

يُظهر الكود أعلاه الخطأ 'تعيين موقع للقراءة فقط '*ptr'' و'تعيين متغير للقراءة فقط 'ptr''. ولذلك نستنتج أن المؤشر الثابت إلى ثابت لا يمكن أن يغير العنوان ولا القيمة التي يشير إليها هذا المؤشر.