The Code Fix

شرح C++

الدوال والمؤشّرات

الدوال

int add(int a, int b) {
    return a + b;
}

int main() {
    cout << add(4, 6);   // 10
}

التمرير بالقيمة مقابل المرجع

// بالقيمة: نسخة، لا يؤثّر على الأصل
void byValue(int x) { x = 100; }

// بالمرجع: يعدّل الأصل (لاحظ &)
void byRef(int &x) { x = 100; }

int main() {
    int n = 5;
    byValue(n);  cout << n;  // 5
    byRef(n);    cout << n;  // 100
}

المؤشّرات (Pointers)

المؤشّر متغيّر يخزّن عنوان متغيّر آخر في الذاكرة — مفهوم مميّز في C++:

int age = 25;
int *ptr = &age;   // ptr يخزّن عنوان age

cout << ptr;    // العنوان
cout << *ptr;   // 25  (القيمة في ذلك العنوان)
  • &age = عنوان المتغيّر.
  • *ptr = القيمة المخزّنة في العنوان (dereference).

لماذا المؤشّرات؟

  • التحكّم المباشر في الذاكرة.
  • تمرير البيانات الكبيرة بكفاءة (بلا نسخ).
  • أساس الهياكل الديناميكية.

💡 المؤشّرات قوية لكنها تحتاج حذرًا — سوء استخدامها سبب شائع للأخطاء.

🎯 التالي: البرمجة كائنية التوجّه في C++.