أول مرة هنا ؟ تفحص قواعد المشاركة و معلومات أخرى عن عرب overflow!
x

ما الفرق بين calling by reference & calling by value ف functions ؟؟؟؟؟

+3 صوت
1,173 مشاهدات

2 إجابة

+5 صوت

 
أفضل إجابة

في حالة call by value تقوم بارسال قيمه للداله وحينما تبدأ الداله في الميموري تقوم باستخدام هذه القيمه وعند انتهاء الداله تمسح القيمه من الميموري

void change(int x,int y)
{
    x=y;
    y=0;
}
int main()
{
    int x=5,y=10;
    cout << x << "," << y << endl;
    change(x,y);
    cout << x << "," << y << endl;
    return 0;
}

في هذا الكود ستجد ان في دالة main اذا قمت باستدعاء الداله قبل وبعد المتغير لم تجد اي اختلاف

اما في حالة call by reference تقوم بارسال متغير للداله وعندما تبدأ الداله في الميموري سيعدل علي قيم هذا المتغير وعند انتهاء الداله يظل بنفس القيم التي تم التعديل عليها اثناء الداله

void change(int &x,int &y)
{
    x=y;
    y=0;
}
int main()
{
    int x=5,y=10;
    cout << x << "," << y << endl;
    change(x,y);
    cout << x << "," << y << endl;
    return 0;
}

هنا ستجد ان عند استدعاء الداله ستلاحظ ان القيم الاصليه تم تغييرها
بالتوفيق ان شاء الله

Araboverflow أهلا بكم فى عرب Overflow
المجتمع العربى للأسئلة و الأجوبة التقنية.

أحدث الشارات

100 نقطة
- Mohamed Mahmoud -
سؤال مشهور
- ضياء اشرف -
سؤال ملحوظ
- محمد أحمد -
100 نقطة
- Mahmoud Khalifa -
سؤال ذائع الصيت
- Aden Coder -
...