73 lines
2.8 KiB
Markdown
73 lines
2.8 KiB
Markdown
---
|
||
title: Structures
|
||
localeTitle: الهياكل
|
||
---
|
||
## الهياكل في C
|
||
|
||
### ما هي الهياكل؟
|
||
|
||
* **البنية** هي نوع معرف من قبل المستخدم في C. إنه يستند إلى فكرة أن أوقات معينة ، مبرمج يريد إدارة ليس فقط أنواع البيانات البدائية ولكن أيضا أنواع البيانات المعرفة من قبل المبرمج.
|
||
* يتكون **الهيكل** ، كما يوحي الاسم ، من أنواع مختلفة من البيانات الأولية ، مثل الأحرف والأعداد الصحيحة ومتغيرات النقطة العائمة والمصفوفات وما إلى ذلك.
|
||
* يمكن أن يحتوي **الهيكل** أيضًا على العديد من أنواع البيانات الأخرى المعرفة بواسطة المستخدم. سوف تتعلم عن البنى المتداخلة التالية.
|
||
* تشكل **الهياكل** أساس **_البرمجة الشيئية_** حيث أن مفهوم _الطبقة_ ينشأ من البنى.
|
||
|
||
### الكلمة الأساسية
|
||
|
||
* يمكن أن تساعدنا الكلمة الأساسية `struct` في تعريف نوع بيانات المعرفة من قبل المستخدم.
|
||
|
||
`struct StudentRecord
|
||
{
|
||
char Name[20];
|
||
int Class;
|
||
char Address[30];
|
||
char Phone[10];
|
||
};
|
||
`
|
||
|
||
* يمكننا أيضًا تحديد **بنية** باستخدام **الرموز المميزة لـ typedef** مما يجعل تهيئة البنية لاحقًا في برنامجنا أسهل.
|
||
|
||
`typedef struct StudentRecord
|
||
{
|
||
char Name[20];
|
||
int Class;
|
||
char Address[30];
|
||
char Phone[10];
|
||
}Record;
|
||
`
|
||
|
||
في `main()` ، يتم تعريف **StudentRecord** نوع البيانات المعرفة من قبل المستخدم على النحو التالي:
|
||
|
||
`int main(void)
|
||
{
|
||
struct StudentRecord student1;
|
||
}
|
||
`
|
||
|
||
وباستخدام **typedef** ، يبدو نوع البيانات المعرفة من قبل المستخدم:
|
||
|
||
`int main(void)
|
||
{
|
||
Record student1;
|
||
}
|
||
`
|
||
|
||
للوصول إلى البيانات المخزنة في **student1** ، نستخدم عامل نقطة ( **.** ) للوصول إلى محتويات متغير نوع البنية.
|
||
|
||
`int main(void)
|
||
{
|
||
struct StudentRecord student1;
|
||
student1.Class = 10;
|
||
printf("Enter Name of Student\n");
|
||
scanf("%s",&student1.Name);
|
||
printf("Enter Address of Student\n");
|
||
scanf("%s",&student1.Address);
|
||
printf("Enter Phone Number of Student\n");
|
||
scanf("%s",&student1.Phone);
|
||
// Printing the Data
|
||
printf("Name: %s \n, Class: %d \n, Address: %s \n, Phone: %s \n",student1.Name, student1.Class, student1.Address, student1.Phone);
|
||
}
|
||
`
|
||
|
||
### معلومات اكثر
|
||
|
||
https://www.tutorialspoint.com/cprogramming/c\_structures.htm |