اشاره گر به یک آرایه در زبان C
به احتمال زیاد درک این بخش از آموزش برای شما دشوار خواهد، زیرا مربوط به مبحث اشاره گرها می شود که شما هنوز این مبحث را یاد نگرفته اید. نام آرایه، یک اشاره گر ثابت به آدرس اولین عنصر آرایه است. بنابراین اعلان زیر را در نظر بگیرید:
double balance[50];
نام آرایه یعنی balance به &balance[0] اشاره می کند که شامل آدرس اولین عنصر آرایه است. کد زیر آدرس اولین عنصر آرایه را در متغیر p قرار می دهد:
double *p; double balance[10]; p = balance;
با توجه به کد بالا، استفاده از نام آرایه به عنوان اشاره گر ثابت کاملا درست و منطقی است. بنابراین *(balance + 4) مشابه balance[4] است.
مثال زیر یک نمونه از تمام موارد گفته شده فوق می باشد.
#include <stdio.h> int main () { /* an array with 5 elements */ double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; double *p; int i; p = balance; /* output each array element's value */ printf( "Array values using pointer\n"); for ( i = 0; i < 5; i++ ) { printf("*(p + %d) : %f\n", i, *(p + i) ); } printf( "Array values using balance as address\n"); for ( i = 0; i < 5; i++ ) { printf("*(balance + %d) : %f\n", i, *(balance + i) ); } return 0; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Array values using pointer *(p + 0) : 1000.000000 *(p + 1) : 2.000000 *(p + 2) : 3.400000 *(p + 3) : 17.000000 *(p + 4) : 50.000000 Array values using balance as address *(balance + 0) : 1000.000000 *(balance + 1) : 2.000000 *(balance + 2) : 3.400000 *(balance + 3) : 17.000000 *(balance + 4) : 50.000000
در مثال بالا، p یک اشاره گر به double است. مفهوم این جمله آن است p که می تواند آدرس یک متغیر از نوع double را در خود ذخیره کند. متغیر p که از نوع اشاره گر است، برای ذخیره سازی آدرس حافظه یک متغیر استفاده می شود و به منظور دسترسی به مقداری که در این آدرس ذخیره شده است، می توان از *p استفاده کنید.
نوشته اشاره گر به یک آرایه در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.