الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن شرح للفرق بين الكودين

بدأه جراند في 28 يناير 2009 · 1 رد · 505 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

code 1

 

#include <iostream.h>
void two(int x)
{
 x=2;
 cout<<x<<endl;

}

int main()
{
 int y=1;
 two(y);
 cout<<y<<endl;
 return 0;
}

الناتج

2

1

code 2

 

#include <iostream.h>
void two(int &x)
{
 x=2;
 cout<<x<<endl;

}

int main()
{
 int y=1;
 two(y);
 cout<<y<<endl;
 return 0;
}

الناتج

2

2

وشكرااااا

تم تعديل هذه المشاركة بواسطة جراند في 28 يناير 2009 في 19:14

#2

الكود الأول يتم تمرير المتغير للدالة بالقيمة ، مما لا يسمح لتغيير قيمتها داخل الدالة

أما فى الكود الثانى ، لو تلاحظ ، تم اضافة علامة & مثل :

void two(int &x)
{
x=2;
cout<<x<<endl;
}

علامة & تسمى ampersand و هى ترمز فى السى++ لـ Pass by reference

See zs Link

وفقكم الله ،،

مواضيع مشابهة