C++ Pointers

🔹 تعریف

  • Pointer یک متغیر است که آدرس حافظه یک متغیر دیگر را ذخیره می‌کند.

  • به کمک Pointer می‌توان به طور مستقیم روی حافظه دسترسی پیدا کرد.

🔹 نحوه تعریف

type *pointerName;
  • * نشان‌دهنده Pointer است.

  • نوع Pointer باید همان نوع متغیری باشد که آدرس آن را نگه می‌دارد.

1️⃣ مثال ساده

#include <iostream> using namespace std; int main() { int x = 10; int *ptr = &x; // ptr آدرس x را نگه می‌دارد cout << "Value of x: " << x << endl; cout << "Address of x: " << &x << endl; cout << "Value of ptr: " << ptr << endl; cout << "Value pointed by ptr: " << *ptr << endl; }

🔹 خروجی نمونه:

Value of x: 10 Address of x: 0x7ffee4c1aabc Value of ptr: 0x7ffee4c1aabc Value pointed by ptr: 10

2️⃣ تغییر مقدار متغیر از طریق Pointer

#include <iostream> using namespace std; int main() { int x = 5; int *ptr = &x; *ptr = 20; // تغییر مقدار x از طریق pointer cout << "x = " << x << endl; // خروجی: 20 }

3️⃣ نکات مهم

  1. برای گرفتن آدرس متغیر از pointer از & استفاده می‌کنیم.

  2. برای دسترسی به مقدار متغیر از طریق pointer از * استفاده می‌کنیم (dereference).

  3. Pointerها می‌توانند به انواع داده‌ها اشاره کنند: int, float, char, double و حتی آرایه‌ها یا struct ها.

  4. Pointer می‌تواند null باشد، یعنی هیچ متغیری را اشاره نکند:

int *ptr = nullptr;

4️⃣ مثال با آرایه

#include <iostream> using namespace std; int main() { int numbers[] = {1, 2, 3}; int *ptr = numbers; // ptr به اولین عنصر آرایه اشاره می‌کند for (int i = 0; i < 3; i++) { cout << *(ptr + i) << " "; // دسترسی به عناصر آرایه با pointer } }

🔹 خروجی: 1 2 3