آرایه ای از اشاره گرها در زبان C++
قبل از این که مبحث آرایه ای از اشاره گرها را شروع کنیم به مثال زیر که یک آرایه سه عنصری از نوع int دارد، توجه کنید:
#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; for (int i = 0; i < MAX; i++) { cout << "Value of var[" << i << "] = "; cout << var[i] << endl; } return 0; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:
Value of var[0] = 10 Value of var[1] = 100 Value of var[2] = 200
ممکن است در برنامه نویسی وضعیتی پیش آید که بخواهیم، آرایه ای ایجاد کنیم بتواند اشاره گرها را در خود نگه دارد. در مواقع می توان به صورت زیر عمل کرد:
int *ptr[MAX];
دستور بالا آرایه ای به طول MAX برای نگه داری اشاره گرها ایجاد می کند. این شکل از آرایه به جای آن که مقادیر را در خود ذخیره کند، آدرس آن مقادیر را ذخیره می کند. مثال زیر نحوه تعریف و استفاده از یک آرایه ای از اشاره گرها را نشان می دهد:
#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; int *ptr[MAX]; for (int i = 0; i < MAX; i++) { ptr[i] = &var[i]; // assign the address of integer. } for (int i = 0; i < MAX; i++) { cout << "Value of var[" << i << "] = "; cout << *ptr[i] << endl; } return 0; }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Value of var[0] = 10 Value of var[1] = 100 Value of var[2] = 200
شما همچننی می توانید یک آرایه از اشاره گرهایی از نوع کاراکتر برای ذخیره سازی رشته ها ایجاد کنید:
#include <iostream> using namespace std; const int MAX = 4; int main () { const char *names[MAX] = { "Zara Ali", "Hina Ali", "Nuha Ali", "Sara Ali" }; for (int i = 0; i < MAX; i++) { cout << "Value of names[" << i << "] = "; cout << (names + i) << endl; } return 0; }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Value of names[0] = Zara Ali Value of names[1] = Hina Ali Value of names[2] = Nuha Ali Value of names[3] = Sara Ali
نوشته آرایه ای از اشاره گرها در زبان C++ – آموزش زبان C++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.