🔗
Basics

References

Pointer Ka Safer Cousin
💡 Reference ek alias (nickname) hai — jaise kisi cheez ke do naam ho (jaise "Papa" aur "Rajesh Kumar" ek hi insaan). Reference create karne ke baad, dono naam SAME cheez ko refer karte hain, koi alag memory nahi banti.

Reference (& symbol variable declaration mein) ek existing variable ka alias hai — pointer jaisa lagta hai lekin kaam karne ka tareeka simpler hai: reassign nahi ho sakta (hamesha same variable ko refer karta hai), aur NULL nahi ho sakta (hamesha kisi valid variable se juda hona chahiye).

References sabse zyada function parameters mein use hote hain — "pass by reference" ke liye, taaki function original variable ko directly modify kar sake, bina pointer syntax (*,&, ->) ki complexity ke.

int x = 10;
int &ref = x;   // ref, x ka alias hai — SAME memory

ref = 20;
cout << x << endl;   // 20 — x bhi change ho gaya!

void increment(int &n) {  // pass by reference
  n++;
}

int main() {
  int val = 5;
  increment(val);
  cout << val << endl;  // 6 — original modify hua, pointer syntax ke bina!
  return 0;
}
🔗
Reference ek alias (nickname) hai — jaise kisi cheez ke do naam ho (jaise "Papa" aur "Rajesh Kumar" ek hi insaan). Reference create karne ke baad, dono naam SAME cheez ko refer karte hain, koi alag memory nahi banti.
1 / 6
⚡ Quick Recap
  • Reference = existing variable ka alias, pointer jaisa lekin simpler
  • Reassign nahi ho sakta, NULL nahi ho sakta
  • Function parameters mein pass-by-reference ke liye bahut common
On this page (1 subtopics)

References tab use karo jab: variable hamesha valid hoga (NULL nahi ho sakta), reassign karne ki zaroorat nahi (hamesha same cheez point karega), aur syntax simple chahiye. Pointers tab zaroori hain jab: NULL/optional hona chahiye, reassign karna ho, ya dynamic memory (heap) manage karna ho.

int x = 10, y = 20;

int &ref = x;   // hamesha x hi rahega
int *ptr = &x;  // reassign ho sakta hai:
ptr = &y;       // ab y ko point karta hai

// ref = y;     // ye reference ko REASSIGN nahi karta —
                 // ye x ki VALUE ko y ki value se replace kar deta hai!
⚠️Common Mistake: ref = y; ek common confusion hai — ye reference ko y par point nahi karwata, balki x ki value ko y ki value (20) se overwrite kar deta hai, kyunki reference already x se bound hai.