الدرس 11: (ج2) التوابع Functions الارسال بالقيمة والارسال بالمرجع
الدرس 11: (ج2) التوابع Functions الارسال بالقيمة والارسال بالمرجع
لنفرض أننا لدينا متغيرين صحيحين في برنامج ونريد استدعاء دالة تقوم بتبديل قيمتي
الرقمين ،لنفرض أننا عرفنا الرقمين كالآتي:
;int x=1
;int y=2
الرقمين ،لنفرض أننا عرفنا الرقمين كالآتي:
;int x=1
;int y=2
1- التمرير بالقيمة (by-value) :
لنرى هل تقوم الدالة التالية بتبديل القيمتين:
(void swap (int a, int b}
2-التمرير بالمرجع (by-refrence):
لنرى هل تقوم الدالة التالية بتبديل القيمتين:
(void swap (int a, int b}
;int temp =a
;a=b
;b=temp
{
;a=b
;b=temp
{
ملاحظة : سبق وشرح فكرة التبديل او الاستبدال في الفيديوهات السابقة
تقوم هذه الدالة بتبديل قيمتي aو ، b لكن إذا استدعينا هذه الدالة كالآتي:; (swap( x,yسنجد أن قيمتي x و yلم تتغير وذلك لأن الوسيطات الاعتيادية للدالة يتم تمريرها
بالقيمة للوسطاء aو b اي يتم نسخ قيم x,y ووضعهما ضمن الوسطاء بدون عملية التبديل
بالقيمة للوسطاء aو b اي يتم نسخ قيم x,y ووضعهما ضمن الوسطاء بدون عملية التبديل
ليست هناك تعليقات: