آرایه پوینتر

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

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

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

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

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

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

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

#include <stdio.h>

int main() {

int x[4];

int i;

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

printf(“&x[%d] = %p\n”, 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)*  مقدار عنصر دوم آرایه را برمی گردانند.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست