C++ Dereference

🔹 تعریف

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

  • با عملگر * می‌توان مقدار واقعی را از آدرس Pointer گرفت یا تغییر داد.

🔹 ساختار

*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 << "Value pointed by ptr: " << *ptr << endl; *ptr = 20; // تغییر مقدار x از طریق pointer cout << "New value of x: " << x << endl; }

🔹 خروجی:

Value of x: 10 Value pointed by ptr: 10 New value of x: 20

2️⃣ Dereference در آرایه‌ها

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

🔹 خروجی: 1 2 3

3️⃣ نکات مهم

  1. Dereference فقط روی Pointer معتبر انجام شود، در غیر این صورت برنامه crash می‌کند.

  2. با dereference می‌توان مقدار متغیر را خواند یا تغییر داد.

  3. ترکیب pointer و dereference در حلقه‌ها و آرایه‌ها بسیار پرکاربرد است.

  4. Referenceها خودشان به نوعی dereference هستند و از * استفاده نمی‌کنند.