ما هو الفرق بين الاتصال حسب القيمة ، الاتصال حسب العنوان ، والاتصال حسب المرجع في شكل جدول تحت C ++؟


الاجابه 1:

تقوم طريقة الاستدعاء حسب القيمة لتمرير الوسائط إلى دالة بنسخ القيمة الفعلية للوسيطة إلى المعلمة الرسمية للدالة.

استدعاء دالة C ++ بواسطة المؤشر. استدعاء الأسلوب بواسطة مؤشر تمرير الوسائط إلى دالة بنسخ theaddress الوسيطة في المعلمة الرسمية. داخل الوظيفة ، يتم استخدام العنوان للوصول إلى الوسيطة الفعلية المستخدمة في المكالمة.

استدعاء الأسلوب مرجع بواسطة تمرير الوسائط إلى دالة بنسخ مرجع وسيطة في المعلمة الرسمية. داخل الوظيفة ، يتم استخدام المرجع للوصول إلى الوسيطة الفعلية المستخدمة في المكالمة. هذا يعني أن التغييرات التي تم إجراؤها على المعلمة تؤثر على الوسيطة التي تم تمريرها.


الاجابه 2:

C ++ دعم الدعوة من حيث القيمة ، الاتصال حسب المرجع والدعوة عن طريق أنواع عنوان لتمرير permeter.

استدعاء حسب القيمة: في هذا النوع من التمرير تمرير القيم الفعلية يتم تمريرها كوسائط في استدعاء دالة.

السابق. مبلغ (4،6)

استدعاء حسب المرجع: في هذا النوع يتم تمرير مرجع ذلك المتغير في استدعاء الوظيفة. المرجع هو اسم آخر للمتغير الموجود بالفعل.

استدعاء بواسطة المؤشر / العنوان: في هذا النوع من التمرير يتم تمرير عنوان المتغير إلى الوظيفة.

السابق. مجموع (& أ ، ب)


الاجابه 3:

تعني الدعوة بالقيمة # include # تضمين int function (int)؛ int main () {int a = 3؛ int b؛ b = function (a)؛ Cout << a << "" << b << endl؛ getch () ؛ return (0)؛} دالة int (int c) {c = c + 1؛ return (c)؛} عند تشغيل هذا الرمز ، ستكون المخرجات = 3b = 4. الآن في الدعوة عن طريق العنوان ، رأس filesint وظيفة (int *) int main () {نفس الرمز في استدعاء lineb = function (& a) ؛ نفس الرمز حتى الأقواس} int function (int * p) {* p = * p + 1 ؛ return (* p)؛} الآن سيكون الإخراج = 5b = 5. الآن في حالة إشارة بالرجوع نفس الرمز ولكن إعلان الوظيفة هو int function (int &)؛ int main () {نفس الرمز ولكن استدعاء isb = function (a ) ؛ نفس الرمز حتى الأقواس} الدالة int (int & r) {r = r + 1؛ return (r)؛}


الاجابه 4:

مرحبا،

الاتصال حسب القيمة

تقوم طريقة الاستدعاء حسب القيمة لتمرير الوسائط إلى دالة بنسخ القيمة الفعلية للوسيطة إلى المعلمة الرسمية للدالة. في هذه الحالة ، لن يكون للتغييرات التي تم إجراؤها على المعلمة داخل الوظيفة أي تأثير على الوسيطة.

بشكل افتراضي ، يستخدم C ++ استدعاء حسب القيمة لتمرير الوسائط. بشكل عام ، هذا يعني أن التعليمات البرمجية داخل دالة لا يمكنها تغيير الوسائط المستخدمة لاستدعاء الوظيفة.

تبادل الفراغ (int x ، int y) {
   كثافة العمليات المؤقتة

   درجة الحرارة = س ؛ / * حفظ قيمة x * /
   س = ذ ؛ / * ضع y في x * /
   ص = درجة الحرارة ؛ / * ضع x في y * /
  
   إرجاع؛
}

الاتصال حسب المرجع

استدعاء الأسلوب مرجع بواسطة تمرير الوسائط إلى دالة بنسخ مرجع وسيطة في المعلمة الرسمية. داخل الوظيفة ، يتم استخدام المرجع للوصول إلى الوسيطة الفعلية المستخدمة في المكالمة. هذا يعني أن التغييرات التي تم إجراؤها على المعلمة تؤثر على الوسيطة التي تم تمريرها.

لتمرير القيمة حسب المرجع ، يتم تمرير مرجع الوسيطة إلى الوظائف تمامًا مثل أي قيمة أخرى.

المبادلة الفارغة (int & x ، int & y) {
   كثافة العمليات المؤقتة
   درجة الحرارة = س ؛ / * حفظ القيمة في العنوان x * /
   س = ذ ؛ / * ضع y في x * /
   ص = درجة الحرارة ؛ / * ضع x في y * /
  
   إرجاع؛
}

الاتصال عن طريق المؤشر أو الاتصال عن طريق العنوان

استدعاء الأسلوب بواسطة مؤشر تمرير الوسائط إلى دالة بنسخ عنوان وسيطة في المعلمة الرسمية. داخل الوظيفة ، يتم استخدام العنوان للوصول إلى الوسيطة الفعلية المستخدمة في المكالمة. هذا يعني أن التغييرات التي تم إجراؤها على المعلمة تؤثر على الوسيطة التي تم تمريرها.

لتمرير القيمة حسب المؤشر ، يتم تمرير مؤشرات الوسيطة إلى الوظائف تمامًا مثل أي قيمة أخرى.

تبادل الفراغ (int * x ، int * y) {
   كثافة العمليات المؤقتة
   درجة الحرارة = * س ؛ / * حفظ القيمة في العنوان x * /
   * س = * ذ ؛ / * ضع y في x * /
   * ص = درجة الحرارة ؛ / * ضع x في y * /
  
   إرجاع؛
}

شكرا لكم.


الاجابه 5:

بادئ ذي بدء ، يجب أن نعرف ما هي الوظيفة: الوظيفة هي مجموعة من العبارات التي يتم تشغيلها عند استدعاء الوظيفة من أي موقع آخر من الكود المصدري.

الوظيفة هي جزء من الكود الذي يقوم بالمهمة.

للقيام ببعض المهام ، من الضروري أن تأخذ الدالة بعض القيم وتُرجع الفرق بين Call by Value و Call by Reference هل Call by value ، يتم تمرير نسخة من الوسائط الفعلية إلى الوسائط الرسمية للوظيفة called وأي تغيير يتم إجراؤه على الوسائط الرسمية في الدالة المطلوبة لن يكون لها أي تأثير على القيم الخاصة بالوسائط الفعلية في وظيفة الاستدعاء. .في الدعوة بالإشارة ، يتم تمرير موقع (عنوان) الوسائط الفعلية إلى الوسائط الرسمية للدالة المطلوبة. هذا يعني من خلال الوصول إلى عناوين الوسائط الفعلية ، يمكننا تغييرها من داخل الوظيفة المطلوبة. استدعاء الأسلوب مرجع بواسطة تمرير الوسائط إلى دالة بنسخ عنوان وسيطة في المعلمة الرسمية. داخل الوظيفة ، يتم استخدام العنوان للوصول إلى الوسيطة الفعلية المستخدمة في المكالمة. ... لتمرير قيمة حسب المرجع ، يتم تمرير مؤشرات الوسيطة إلى الوظائف تمامًا مثل أي قيمة أخرى. تقوم طريقة الاستدعاء حسب القيمة الخاصة بتمرير التوجهات إلى دالة بنسخ القيمة الفعلية للوسيطة في المعلمة الرسمية للدالة. ... بشكل افتراضي ، يستخدم C ++ استدعاء حسب القيمة لتمرير الوسائط. بشكل عام ، هذا يعني أن التعليمات البرمجية داخل دالة لا يمكنها تغيير الوسائط المستخدمة لاستدعاء الوظيفة.