References
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 = 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
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!