Chapter 8C++ Tutorial~1 min read
Pointers & References
Pointers — Memory Addresses
C++ मध्ये pointers C सारखेच आहेत + references (&) आणि smart pointers (unique_ptr, shared_ptr) आले. nullptr वापरा — NULL नाही. References म्हणजे existing variable चे alias.
Pointer Basics
& address-of, * dereference
cpp
#include <iostream>
using namespace std;
int main() {
int num = 42;
// & = address-of operator
cout << "Value: " << num << endl; // 42
cout << "Address: " << &num << endl; // 0x7fff...
// int* — integer pointer
int *ptr = # // ptr holds num's address
cout << "ptr: " << ptr << endl; // address
cout << "*ptr: " << *ptr << endl; // 42 — dereference
// Pointer ने value बदलणे
*ptr = 100;
cout << "num is now: " << num << endl; // 100
// nullptr — null pointer (C++11, NULL पेक्षा safe)
int *p = nullptr;
if (p == nullptr) {
cout << "Pointer is null" << endl;
}
return 0;
}References — Alias
Reference — same variable, different name
cpp
int num = 42;
// Reference — num चे alias
int &ref = num; // ref आणि num same memory!
cout << num << endl; // 42
cout << ref << endl; // 42
ref = 100; // ref बदलला → num पण बदलतो!
cout << num << endl; // 100
// Pointer vs Reference
// Pointer — reassignable, nullable, * dereference लागतो
// Reference — always valid, reassign नाही, . notation
// Function parameter म्हणून reference
void increment(int &x) { x++; }
int a = 5;
increment(a);
cout << a << endl; // 6 — original बदललाDynamic Memory — new/delete
Heap memory allocation
cpp
// new — heap वर memory allocate करतो
int *p = new int(42); // single int
cout << *p << endl; // 42
int *arr = new int[5]; // array of 5 ints
arr[0] = 10; arr[1] = 20;
// delete — memory free करणे — MANDATORY!
delete p;
delete[] arr; // array साठी delete[]
// Modern C++ — smart pointers (memory auto free)
#include <memory>
auto sp = make_unique<int>(42); // unique_ptr
cout << *sp << endl; // 42
// delete लागत नाही — scope संपल्यावर auto free!✅ Key Points — लक्षात ठेवा
- ▸& address-of, * dereference/declare pointer
- ▸int *ptr = &var — pointer declaration
- ▸int &ref = var — reference (alias)
- ▸nullptr — null pointer (C++11), NULL पेक्षा safe
- ▸new/delete — heap allocation (delete विसरू नका!)
0/11 chapters पूर्ण