coinpayu

الدرس 11: (ج2) التوابع Functions الارسال بالقيمة والارسال بالمرجع

الدرس 11: (ج2) التوابع Functions الارسال بالقيمة والارسال بالمرجع





لنفرض أننا لدينا متغيرين صحيحين في برنامج ونريد استدعاء دالة تقوم بتبديل قيمتي
الرقمين ،لنفرض أننا عرفنا الرقمين كالآتي:


;int x=1
;int y=2



1- التمرير بالقيمة (by-value) :

 لنرى هل تقوم الدالة التالية بتبديل القيمتين:

(void swap (int a, int b}
;int temp =a
;a=b
;b=temp

{

ملاحظة : سبق وشرح فكرة التبديل او الاستبدال في الفيديوهات السابقة

تقوم هذه الدالة بتبديل قيمتي aو ، لكن إذا استدعينا هذه الدالة كالآتي:; (swap( x,yسنجد أن قيمتي و yلم تتغير وذلك لأن الوسيطات الاعتيادية للدالة يتم تمريرها
بالقيمة للوسطاء 
aو b اي يتم نسخ قيم x,y ووضعهما ضمن الوسطاء بدون عملية التبديل 


2-التمرير بالمرجع (by-refrence):

التمرير بالمرجع هو طريقة تمكن الدالة swap من الوصول إلى المتغيرات الأصليةxو yوالتعامل معها بدلاً من إنشاء متغيرات جديدة . ولإجبار تمرير الوسـيطة بـالمرجع
نضيف الحرف & إلى نوع بيانات الوسيطة في تعريف الدالة وتصريح الدالة
كالتالي:



ونتيجة تنفيذ البرنامج هي :




رابط الشرح :




ليست هناك تعليقات:

يتم التشغيل بواسطة Blogger.