كيفية تطبيق المؤشرات في 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 ++ - Edureka



تفسير:

في البرنامج أعلاه ، نعرض العمل الأساسي للمؤشر. لدينا عدد صحيح متغير num بالقيمة 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 ++

المؤشرات الفارغة:

هناك نوع من المؤشرات التي ليس لها قيمة ولها قيمة فارغة

مثال :

int * ptr = NULL

إنها مفيدة جدًا في هياكل البيانات مثل القائمة المرتبطة.

الانتقال إلى هذه المقالة حول المؤشرات على C ++

print_r ()

مؤشرات باطلة:

هذه هي نوع المؤشرات التي ليس لها نوع إرجاع.

الانتقال إلى هذه المقالة حول المؤشرات على C ++

عملية حسابية المؤشر:

يمكن إجراء عمليات مختلفة على المؤشرات. فيما يلي بعض الأنواع المهمة.

  • متزايد (++)
  • تناقص (-)
  • الفرق بين مؤشرين (p1-p2)
  • إضافة عدد صحيح إلى مؤشر (+ أو + =)
  • طرح عدد صحيح من المؤشر (- أو - =)

إليك رمز لعرض بعض هذه العمليات:

# تضمين باستخدام مساحة الاسم std int main () {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 main () {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 ++

مؤشر إلى الوظائف:

هذه طريقة لتمرير المؤشرات إلى الوظائف. يجب الإعلان عن معلمة الوظيفة كنوع مؤشر. يظهر في الكود أدناه ،

بيان goto في c ++
# تضمين استخدام مساحة الاسم std float getAverage (int * arr، int size) 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 ++'. إذا كنت ترغب في معرفة المزيد ، تحقق من بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميمه لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.