( تعداد نمایش : 1847 )

اشاره گر و آرایه – آموزش سی قسمت بیست و نهم

اشاره گر و آرایه

در زبان C بین آرایه ها و اشاره گرها ارتباط نزدیکی وجود دارد ( اشاره گرها
حاوی یک آدرس و اسم آرایه نیز یک آدرس است ). اسم آرایه آدرس اولیه عنصر آرایه
را مشخص می کند . بعبارت دیگر اسم آرایه آدرس اولین محلی را که عناصر آرایه از
آنجا به بعد در حافظه قرار می گیرند در خود نگهداری می کند . بعنوان مثال اگر
آرایه ای بصورت table[8] تعریف کرده باشیم و اولین عنصر آرایه در محل ۴۰۰ حافظه
قرار داشته باشد و اشاره گری بنام ptr بصورت زیر تعریف کرده باشیم ، int * ptr;

دستور ptr = & table[0] آدرس شروع آرایه یعنی ۴۰۰ را در اشاره گر ptr قرار
می دهد ( این دستور معادل دستور ptr = table; است ) و دستور t = * ptr محتویات
اولین محل آرایه ( اولین عنصر آرایه ) یعنی (table[0]) را در متغیرt قرار داده
دستور * ptr = 0 محتویات اولین محل آرایه table را برابر با صفر قرار می دهد .
با مطالبی که تاکنون گفته شد برای دسترسی به عناصر آرایه علاوه بر اندیس ، از
اشاره گرها نیز می توان استفاده کرد :
آدرس آرایه را در اشاره گر ptr قرار می دهد ptr= table;
به دومین عنصر آرایه اشاره می کند (table[1]);(َptr+ 1) *
به i+1 امین عنصر آرایه اشاره می کند ;(ptr+i) *

مثال : برنامه ای که ۵ مقدار را از ورودی خوانده و در آرایه ای قرار می دهد .
سپس آنها را از آخرین مقدار به اولین مقدار به خروجی منتقل می کند . main)(
{
int arr[5] /i ;
printf(“\n enter five value: ” );
for(i=0 ; i<5 ; i++)
scanf(“%d”/&arr[i] );
printf(“\n the reverse output is: “);
for(i=4 ; i>=0 ; i) –
printf(“%4d”/*(arr+i ));
}

نمونه ای از خروجی برنامه مثال بالا : enter five value: 10 20 30 40 50
the reverse output is:50 40 30 20

دیدگاه خود را بیان کنید.

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