اشاره گرها و آرایه ها در زبان C++
اشاره گرها و آرایه ها از جهات مختلفی بسیار شبیه به هم هستند و در بسیاری از مواقع این دو قابل تعویض هستند. برای یک اشاره گر که به ابتدای یک آرایه اشاره می کند، می تواند با افزایش یافتن به سایر عناصر آرایه دسترسی داشته باشد. به مثال زیر توجه کنید:
#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; int *ptr; // let us have array address in pointer. ptr = var; for (int i = 0; i < MAX; i++) { cout << "Address of var[" << i << "] = "; cout << ptr << endl; cout << "Value of var[" << i << "] = "; cout << *ptr << endl; // point to the next location ptr++; } return 0; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:
Address of var[0] = 0xbfa088b0 Value of var[0] = 10 Address of var[1] = 0xbfa088b4 Value of var[1] = 100 Address of var[2] = 0xbfa088b8 Value of var[2] = 200
با این حال گاهی اوقات اشاره گرها و آرایه ها را نمی توان به طور کامل با یک دیگر تعویض کرد. مثال زیر را در نظر بگیرید:
#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; for (int i = 0; i < MAX; i++) { *var = i; // This is a correct syntax var++; // This is incorrect. } return 0; }
امتحان کنید
در کد بالا امکان تغییر مقدار عناصر آرایه وجود دارد، اما نمی توان آدرس خانه های آرایه را تغییر داد. زیرا متغیر var یک اشاره گر ثابت است و ثوابت بعد از تعریف شدن قابل تغییر نیستند.
دستور زیر برای دسترسی به عناصر یک آرایه به وسیله اشاره گر استفاده می شود:
*(var + 2) = 500;
دستور بالا معتبر است و کامپایل می شود. این دستور مقدار عنصر سوم را برابر با ۵۰۰ قرار می دهد.
نوشته اشاره گرها و آرایه ها در زبان C++ – آموزش زبان C++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.