دسترسی به اجزای ساختمان
همانطورکه مشاهده شد هر ساختمان دارای چند جزئ است که برای دسترسی به هر یک
از اجزای آن از روش کلی زیر استفاده می شود :
<اسم متغیر از نوع ساختمان >.<نام جزئ>
بعنوان مثال ، با فرض این که p1و p2و دو متغیر از نوع ساختمان بوده و دارای ۳
جزئ به اسامی name، person،و salaryو باشند ، دستورات زیر موجب دسترسی به هر
یک از اجزای متغیر p1 می شوند که در مورد p2 نیز میتوان به همین طریق عمل کرد: p1.name
p1.persno
p1.salary
اگر اجزای ساختمان ، از نوع آرایه باشند ، ذکر اندیس آرایه جهت دسترسی به
عناصر آن الزامی است . بعنوان مثال ، دستور زیر را در نظر می گیریم : struct student {
char name [31];
int cours [10];
int unit [10];
int grade [10];
int persno;
} st1.st2;
در دستور فوق بعضی از اجزای ساختمان student بصورت آرایه ای تعریف شده اند .
دستورات زیر موجب دسترسی به اجزای متغیر ساختمان st1 می شوند : st1.cours [1]
st1.cours [i]
st1.name
همانطورکه مشاهده شد اگر اجزای ساختمان رشته ای باشند میتوان به تک تک عناصر
آن نیز دسترسی پیدا کرد (st1.name[i])
در مورد مقدار دادن به اجزای ساختمان می توان همانند یک متغیر معمولی عمل
کرد . لذا با فرض این که st1 متغیر ساختمانی باشد که قبلا” تعریف شده است
دستورات زیر معتبر می باشند : st1.persno=1243;( 1)
printf(“\n %d”/st1.persno);( 2)
gets(st1.name);( 3)
for( i=0;i<10;i++( )4)
scanf(“%d”/&st1.unit[i]);
مثال : برنامه ای که دو عدد موهومی را از ورودی خوانده و مجموع آنها را
محاسبه می کند و به خروجی می برد . main)(
{
struct complex
{
int real ;
int unreal ;
} comp1 / comp2 /result ;
printf(“\n enter the real part”);
printf(” for number %d:”/1);
scanf(“%d”/&comp1.real );
printf(“\n enter the unreal part”);
printf(” for number %d:”/1 );
scanf(“%d”/&comp1.unreal );
printf(“\n enter the real part “);
printf(” for number %d:”/2 );
scanf(“%d”/&comp2.real );
printf(“\n enter the unreal part”);
printf(” for number %d:”/2 );
scanf(“%d”/&comp2.unreal );
result.real=comp1.real+comp2.real;
result.unreal=
comp1.unreal+comp2.unreal;
printf(“\nthe result of sum is:”);
printf(“\nreal part=” );
printf(“%d”/result.real);
printf(“\n unreal part” );
printf(“=%d”/result.unreal);
}
نمونه ای از خروجی برنامه مثال بالا : enter the real part for number 1:12
enter the unreal part for number 1:25
enter the real part for number 2:5
enter the unreal part for number 2:19
the result of sum is:
real part=17
un
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن