ساختارها و اشاره گرها

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

اساطیر زبان

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

قبل از شروع درباره استفاده از اشاره گرها با ساختارها، آموزش های زیر را مرور کنید:

 


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

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


 

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

اشاره گر به ساختار در C

در اینجا شیوه تعریف اشاره گر به ساختار آورده شده است.

struct name {

member1;

member2;

.

.

};

int main()

{

struct name *ptr, Harry;

}

در اینجا ptr یک اشاره گر به struct name است.

مثال: دسترسی به اعضای ساختار با استفاده از اشاره گر

برای دسترسی به اعضای یک ساختار با استفاده از اشاره گرها از عملگر <- استفاده می شود.

#include <stdio.h>

struct person

{

int age;

float weight;

};

int main()

{

struct person *personPtr, person1;

personPtr = &person1;

printf(“Enter age: “);

scanf(“%d”, &personPtr->age);

printf(“Enter weight: “);

scanf(“%f”, &personPtr->weight);

printf(“Displaying:\n”);

printf(“Age: %d\n”, personPtr->age);

printf(“weight: %f”, personPtr->weight);

return 0;

}

در این مثال، آدرس person1 با استفاده از دستور personPtr = &person1; در اشاره گر personPtr ذخیره می شود.

حالا می توانید با استفاده از اشاره گر personPtr به اعضای person1 دسترسی پیدا کنید.

  • personPtr->age  معادل (personPtr).age* است
  • personPtr->weight  معادل (personPtr).weight* است.

تخصیص حافظه پویا ساختارها

قبل از شروع این بخش توصیه می کنیم آموزش تخصیص حافظه پویا در برنامه نویسی C را بررسی کنید.

گاهی اوقات ممکنه تعداد متغیرهای تعریف شده از ساختار کافی نباشند، بنابراین باید در زمان اجرای برنامه حافظه تخصیص دهید. در مثال زیر شیوه انجام کار آورده شده است.

مثال: تخصیص حافظه پویا ساختارها

#include <stdio.h>

#include <stdlib.h>

struct person {

int age;

float weight;

char name[30];

};

int main()

{

struct person *ptr;

int i, n;

printf(“Enter the number of persons: “);

scanf(“%d”, &n);

// person از ساختار n تخصیص حافظه به تعداد

ptr = (struct person*) malloc(n * sizeof(struct person));

for(i = 0; i < n; ++i)

{

printf(“Enter first name and age respectively: “);

// person برای دسترسی به اعضای اولین ساختار,

// استفاده می شود ptr->name , ptr->age

// person برای دسترسی به اعضای دومین ساختار,

// استفاده می شود (ptr+1)->name , (ptr+1)->age

scanf(“%s %d”, (ptr+i)->name, &(ptr+i)->age);

}

printf(“Displaying Information:\n”);

for(i = 0; i < n; ++i)

printf(“Name: %s\tAge: %d\n”, (ptr+i)->name, (ptr+i)->age);

return 0;

}

خروجی

Enter the number of persons: 2

Enter first name and age respectively: Harry 24

Enter first name and age respectively: Gary 32

Displaying Information:

Name: Harry Age: 24

Name: Gary Age: 32

در مثال بالا، تعداد n متغیر از ساختار به صورت پویا ساخته شده است، n توسط کاربر وارد می شود.

ptr = (struct person*) malloc(n * sizeof(struct person));

سپس از اشاره گر ptr برای دسترسی به عناصر person استفاده شده است.

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

turned_in,

چرب زبان

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


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

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

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

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

فهرست