•إسناد السجلات :
نستطيع ان نسند سجلين لبعضهما البعض لكن شريطة أن يكونا من نفس النوع .
فلو أنشئنا السجل التالي :
typedef struct
{
char name[30];
int age;
}data;
و عرفنا منه متغيرين هكذا :
data a, b ;
و أعطينا المتغير a هذه القيم :
strcpy( a.name, "talal" ) ;
a.age = 20 ;
فبإمكاني ان اسند للمتغير b نفس محتويات المتغير a عن طريق هذه الجملة :
b = a ;
•إعطاء السجل أكثر من إسم أو إعطائه المتغيرات لحظة بناء السجل :
فلو كان لدينا السجل التالي :
typedef struct
{
char name[30];
int age;
}data, MyData ;
أستطيع أن اعرف المتغيرات سواء كان بــ data أو بــ MyData و كلها صحيحه.
فلو قلت :
MyData student ;
أو
data student ;
كانا سواء .
و هذا هو إعطاء السجل اكثر من إسم , أما إعطاء السجل أكثر من متغير لحظة بناء السجل و بدون تحديد إسم للسجل يكون كالتالي :
struct
{
الاعضاء
}إسم المتغير ;
فلو اردنا ان نعمل على 100 طالب فقط و متأكيدن أن العدد لن يزيد عن 100 طالب فالأفضل
بناء السجل هكذا :
struct
{
char name[30] ;
int age ;
} student;
و هكذا يصبح student متغير و نقول :
student. name & student. age
طبعاً إلى الآن تعلمنا كيف ننشئ السجل بثلاثة طرق بقي الطريقة الرابعة و الاخيره و هي كالتالي:
struct (إسم السجل)
{
الاعضاء
}(المتغيرات) ;
أي نستطيع أن ننشئ سجل الطالب الذي تكرر علينا كثيراً بالطريقة الرابعه هكذا :
struct data
{
char name[30] ;
int age ;
} student;
هنا student سيكون متغير و data هو إسم السجل و هنا نستطيع في كل مرة نحتاج فيها لإنشاء سجل أن نشئ سجل بالطريقة :
struct data VAR ;
و إستعمال student كمتغير جاهر غير محتاج للتعيرف .
** نقطة أخيره :
في كل جزئ من أجزاء البرامج التي كتبتها و التعريفات و إنشاء المتغيرات في الدرس إستخدمت غالباً التعريف التالي :
typedef struct
{
char name[30];
int age;
}data;
و أنشئت المتغيرات كالتالي :
data VAR ;
ممكن تغييره إلى
struct data
{
char name[30] ;
int age ;
};
و لكن تعريف المتغير سيكون :
struct data VAR ;
و قد نوهت على ذلك من قبل و لكن الذكرى تنفع المؤمنين.
مع تحياتي ,,, و إلى اللقاء اخر بإذن الله .