اشاره گرها و آرایه ها در زبان C++ – آموزش زبان C++

cpp pointers vs arrays 4424 اشاره گرها و آرایه ها در زبان C++   آموزش زبان C++

اشاره گرها و آرایه ها در زبان 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++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *