ارتباط بین آرایه ها و اشاره گرها در برنامه نویسی C

رتبه: 0 ار 0 رای sssss
آرایه پوینتر
نویسنده: میلاد حیدری زمان مطالعه 3 دقیقه
Banner Image

در این آموزش با ارتباط بین آرایه ها و اشاره گرها در برنامه نویسی C آشنا خواهید شد. همچنین می توانید با استفاده از اشاره گرها به عناصر آرایه دسترسی پیدا کنید.

اما قبل از این حتماً دو آموزش زیر را مرور کنید:

  • آرایه ها در برنامه نویسی C
  • اشاره گرها در برنامه نویسی C

ارتباط بین آرایه ها و اشاره گرها

یک آرایه بلوکی از داده های کنار هم و متوالی است. برنامه زیر برای چاپ آدرس عناصر آرایه است،

#include <stdio.h>

int main() {

int x[4];

int i;

for(i = 0; i < 4; ++i) {

printf(“&x[%d] = %pn”, i, &x[i]);

}

printf(“Address of array x: %p”, x);

return 0;

}

خروجی

&x[0] = 1450734448

&x[1] = 1450734452

&x[2] = 1450734456

&x[3] = 1450734460

Address of array x: 1450734448

بین دو عنصر متوالی درآرایه x به اندازه ۴ بایت تفاوت وجود دارد. چون اندازه داده int برابر با ۴ بایت است (در این کامپایلر). توجه داشته باشید که آدرس برای

&x[0]  و x

یکسان است. زیرا نام متغیر x به اولین عنصر آرایه اشاره می کند. در مثال بالا این موضوع کاملا مشخص است و [x[0 نیز معادل *x است.

Relation between arrays and pointers

به طور مشابه،

  • [x[1& معادل x + 1 و [x[1  معادل (x+1)* است.
  • [x[2& معادل x + 2 و [x[2  معادل (x+2)* است.
  • به طور کلی [x[i& معادل x + i و [x[i  معادل *(x+i) است.

مثال ۱: اشاره گرها و آرایه ها

#include <stdio.h>

int main() {

int i, x[6], sum = 0;

printf(“Enter 6 numbers: “);

for(i = 0; i < 6; ++i) {

// است. scanf(“%d”, &x[i]); با

scanf(“%d”, x+i);

// است sum += x[i] با

sum += *(x+i);

}

printf(“Sum = %d”, sum);

return 0;

}

خروجی

Enter 6 numbers: 2

۳

۴

۴

۱۲

۴

Sum = 29

در این برنامه، آرایه x دارای ۶ عنصر است و برای دسترسی به عناصر آن از اشاره گرها استفاده شده است.

در بیشتر موارد نام آرایه ها به اشاره گرها تبدیل می شوند. به همین دلیل می توانید از اشاره گر برای دسترسی به عناصر آرایه استفاده کنید. با این حال باید توجه داشته باشید که اشاره گرها و آرایه ها یکسان نیستند.

چندین مورد وجود دارد که نام آرایه نمی تواند به اشاره گر تبدیل شود.

مثال ۲: آرایه ها و اشاره گرها

#include <stdio.h>

int main() {

int x[5] = {1, 2, 3, 4, 5};

int* ptr;

// ذخیره می شود ptr آدرس سومین عنصر آرایه در

ptr = &x[2];

printf(“*ptr = %d n”, *ptr); // 3

printf(“*(ptr+1) = %d n”, *(ptr+1)); // 4

printf(“*(ptr-1) = %d”, *(ptr-1)); // 2

return 0;

}

خروجی

*ptr = 3

*(ptr+1) = 4

*(ptr-1) = 2

در این مثال، [x[2& یعنی آدرس عنصر سوم به اشاره گر ptr اختصاص داده شده است. بنابراین، ptr* عدد ۳ را نمایش می دهد. به همین ترتیب (ptr+1)* مقدار عنصر چهارم و (ptr-1)*  مقدار عنصر دوم آرایه را برمی گردانند.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

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

1 2 3 4 5

0 نظر درباره «ارتباط بین آرایه ها و اشاره گرها در برنامه نویسی C»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید