آرایه ای از اشاره گرها در زبان C
قبل از این که مبحث آرایه ای از اشاره گرها را شروع کنیم به مثال زیر که یک آرایه سه عنصری از نوع int دارد، توجه کنید:
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> const int MAX = 3; int main () { int var[] = {10, 100, 200}; int i; for (i = 0; i < MAX; i++) { printf("Value of var[%d] = %d\n", i, var[i] ); } return 0; } |
زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 2 3 | Value of var[0] = 10 Value of var[1] = 100 Value of var[2] = 200 |
ممکن است در برنامه نویسی وضعیتی پیش آید که بخواهیم، آرایه ای ایجاد کنیم بتواند اشاره گرها را در خود نگه دارد. در مواقع می توان به صورت زیر عمل کرد:
1 | int *ptr[MAX]; |
دستور بالا آرایه ای به طول MAX برای نگه داری اشاره گرها ایجاد می کند. این شکل از آرایه به جای آن که مقادیر را در خود ذخیره کند، آدرس آن مقادیر را ذخیره می کند. مثال زیر نحوه تعریف و استفاده از یک آرایه ای از اشاره گرها را نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> const int MAX = 3; int main () { int var[] = {10, 100, 200}; int i, *ptr[MAX]; for ( i = 0; i < MAX; i++) { ptr[i] = &var[i]; /* assign the address of integer. */ } for ( i = 0; i < MAX; i++) { printf("Value of var[%d] = %d\n", i, *ptr[i] ); } return 0; } |
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 2 3 | Value of var[0] = 10 Value of var[1] = 100 Value of var[2] = 200 |
شما همچنین می توانید یک آرایه از اشاره گرهایی از نوع کاراکتر برای ذخیره سازی رشته ها ایجاد کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> const int MAX = 4; int main () { char *names[] = { "Zara Ali", "Hina Ali", "Nuha Ali", "Sara Ali" }; int i = 0; for ( i = 0; i < MAX; i++) { printf("Value of names[%d] = %s\n", i, names[i] ); } return 0; } |
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 2 3 4 | Value of names[0] = Zara Ali Value of names[1] = Hina Ali Value of names[2] = Nuha Ali Value of names[3] = Sara Ali |
هیچ نظری ثبت نشده است