تاپیک منتقل گردید.
اشاره گر ها کاربرد های بسیاری دارند، از جابجایی های سریع و ساده داده ها گرفته تا مقدار دهی داده هایی که
اندازه داده یا موقعیتشان در حافظه مشخص و ثابت نیست.
مثلا در کد زیر طول آرایه بایستی n باشد که پیش از اجرا برنامه مقدارش مشخص نیست. ایجاد کردن یک آرایه با طول
نامشخص بدون بکارگیری اشاره گر a میسر نیست :
کد:
int n;
cin >> n;
int *a = new int[10];
در مثال زیر دو رشته a و b هر کدام 1000 خانه طول دارند و تعویض مقدار ایندو متغیر بدون جابجایی مقدار 2000 خانه
میسر نیست :
کد:
char a[1000], b[1000], temp;
for (int i = 0; i < 1000; i++)
{
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
اما با استفاده از اشاره گر، تعویض مقدار این دو رشته صرفا توسط جابجایی مقدار دو اشاره گر میسر است :
کد:
char aa[1000], bb[1000], *temp;
char *a = aa, *b = bb;
temp = a;
a = b;
b = temp;
اشاره گر یک متغیر است، چون متغیر داده دارد که بتواند تغییر کند. اشاره گر هم مقدارش (جایی که
به آن اشاره می کند) تغییر پذیر است. تفاوت اصلی اشاره گر با سایر متغیر ها صرفا در این است که مقدار خود
اشاره گر به تنهایی کاربردی ندارد، بلکه آن آدرسی از حافظه که اشاره گر به آن اشاره می کند کاربردش را
مشخص می کند.
آرایه ترکیبی از چندین داده از نوع مشابه است که بصورت متوالی پشت سر هم قرار می گیرند و با شماره هایی
از هم تفکیک می شوند. خود آرایه به تنهایی احتمالا بزرگتر از یک متغیر است، اما اسم آرایه در حقیقت یک اشاره گر است.
مثلا [ int a[4 یک آرایه با طول 4 خانه است، اما خود a یک اشاره گر است که به اولین خانه اشاره می کند.