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

رتبه: 0 ار 0 رای sssss
ساختارها و اشاره گرها
نویسنده: میلاد حیدری زمان مطالعه 3 دقیقه

در این آموزش یاد خواهید گرفت که چگونه با استفاده از اشاره گرها به اعضای ساختارها در برنامه نویسی 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: %dn”, 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: %stAge: %dn”, (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 استفاده شده است.

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

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

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

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

مشاهده همه

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

1 2 3 4 5

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

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