C++ Modify Pointers

🔹 تعریف

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

  • به عبارت دیگر:

    1. تغییر مقدار اصلی از طریق pointer

    2. تغییر مرجع pointer به متغیر دیگر

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

#include <iostream> using namespace std; int main() { int x = 10; int *ptr = &x; // ptr به x اشاره می‌کند *ptr = 50; // تغییر مقدار x از طریق pointer cout << "x = " << x << endl; // خروجی: 50 }

2️⃣ تغییر Pointer به متغیر دیگر

#include <iostream> using namespace std; int main() { int x = 10, y = 20; int *ptr = &x; // ptr به x اشاره می‌کند cout << "Value pointed by ptr: " << *ptr << endl; // 10 ptr = &y; // حالا ptr به y اشاره می‌کند cout << "Value pointed by ptr: " << *ptr << endl; // 20 }

3️⃣ ترکیب تغییر مقدار و تغییر مرجع

#include <iostream> using namespace std; int main() { int a = 5, b = 10; int *ptr = &a; *ptr = 15; // تغییر مقدار a cout << "a = " << a << endl; // 15 ptr = &b; // pointer حالا به b اشاره می‌کند *ptr = 25; // تغییر مقدار b cout << "b = " << b << endl; // 25 }

4️⃣ نکات مهم

  1. Pointer می‌تواند به هر متغیری از همان نوع اشاره کند.

  2. Dereference (*ptr) برای تغییر مقدار اصلی استفاده می‌شود.

  3. تغییر مرجع Pointer هیچ تأثیری روی مقدار قبلی متغیر ندارد، مگر آنکه قبلاً مقدار آن را تغییر داده باشیم.

  4. همیشه مطمئن شوید Pointer معتبر (valid) است قبل از استفاده، در غیر این صورت crash رخ می‌دهد.