إنشاء متغيرات Struct
جزء من قسم Logic & Flow في رحلة C على Coddy — الدرس 40 من 63.
بمجرد قيامك بالتصريح عن نوع struct، يمكنك استخدامه لإنشاء متغيرات فعلية تحتوي على بيانات. يعمل إنشاء متغير struct تماماً مثل التصريح عن أي متغير آخر في لغة C - حيث تقوم بتحديد نوع البيانات متبوعاً باسم المتغير.
صيغة إنشاء متغير struct هي:
struct StructureName variableName;على سبيل المثال، باستخدام الـ Point struct من الدرس السابق:
struct Point p1;
struct Point p2;يؤدي هذا إلى إنشاء متغيرين، p1 و p2، كلاهما من النوع struct Point. يحتوي كل متغير على نسخة منفصلة خاصة به من الأعضاء x و y المعرفة في الـ struct.
يمكنك إنشاء أي عدد تريده من متغيرات الـ struct، تماماً كما تفعل مع الأنواع المدمجة مثل int أو float. كل متغير struct يكون مستقلاً ويمكنه الاحتفاظ بقيم مختلفة في أعضائه. وبمجرد إنشائها، تصبح هذه المتغيرات جاهزة لتخزين بيانات الإحداثيات بطريقة منظمة.
التحدي
سهلقم بإنشاء برنامج بلغة C يوضح كيفية إنشاء متغيرات struct متعددة من أنواع مختلفة. يجب أن يقوم برنامجك بما يلي:
- تعريف
structباسمRectangleبالأعضاء التالية:- عدد صحيح
width - عدد صحيح
height
- عدد صحيح
- تعريف
structباسمStudentبالأعضاء التالية:- عدد صحيح
id - مصفوفة أحرف
nameبحجم 30 - رقم عشري
gpa
- عدد صحيح
- في الدالة الرئيسية، قم بإنشاء متغيرات struct التالية:
- متغيرين من نوع
Rectangleباسمrect1وrect2 - ثلاثة متغيرات من نوع
Studentباسمstudent1وstudent2وstudent3
- متغيرين من نوع
- طباعة رسائل تأكيد لكل متغير تم إنشاؤه بهذا التنسيق تماماً:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- طباعة العدد الإجمالي لمتغيرات struct التي تم إنشاؤها بالتنسيق:
Total struct variables created: 5 - طباعة استخدام الذاكرة لكل نوع بالتنسيق:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
يختبر هذا التحدي قدرتك على تعريف أنواع struct متعددة وإنشاء عدة متغيرات من كل نوع. كل متغير struct مستقل وله مساحة ذاكرة خاصة به، مما يوضح كيف يمكن استخدام الـ structs لتنظيم أنواع مختلفة من البيانات في برامجك.
ورقة مرجعية
لإنشاء متغيرات struct، استخدم نفس الصيغة المستخدمة للتصريح عن المتغيرات الأخرى:
struct StructureName variableName;مثال على إنشاء متغيرات struct متعددة:
struct Point p1;
struct Point p2;كل متغير struct يكون مستقلاً وله نسخته المنفصلة الخاصة به من جميع الأعضاء المعرفين في الـ struct. يمكنك إنشاء أي عدد تريده من متغيرات struct، تماماً مثل الأنواع المضمنة (built-in types).
جرّب بنفسك
#include <stdio.h>
int main() {
// TODO: قم بتعريف هيكل Rectangle هنا
// TODO: قم بتعريف هيكل Student هنا
// TODO: قم بإنشاء متغيرات الهياكل هنا
// TODO: اطبع رسائل تأكيد لكل متغير تم إنشاؤه
// TODO: اطبع العدد الإجمالي لمتغيرات الهياكل التي تم إنشاؤها
// TODO: اطبع حجم الذاكرة المستخدم لكل نوع هيكل باستخدام sizeof()
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1أساسيات المؤشرات
ما هو المؤشر؟الإعلان عن المؤشراتعامل العنوان (&)عامل إلغاء المرجعية (*)مؤشرات NULLمراجعة: أساسيات المؤشرات4مشروع: أداة نصوص بسيطة
نظرة عامة على المشروععد الأحرف7الهياكل (structs)
ما هو الـ Struct؟الإعلان عن Structإنشاء متغيرات Structالوصول إلى أعضاء الـ Structتهيئة الـ Structsمراجعة: Struct بيانات الطالب2المؤشرات والمصفوفات
أسماء المصفوفات كمؤشراتعناصر المصفوفة - المؤشراتالعمليات الحسابية على المؤشراتمقارنة المؤشراتمراجعة: التنقل في المصفوفة باستخدام المؤشرات5المؤشرات والدوال
التمرير بالقيمةتمرير المؤشرات إلى الدوالتعديل المتغيرات عبر المؤشراتمثال كلاسيكي: التبديلتمرير المصفوفات إلى الدوالملخص: وسائط المؤشرات في الدوال8الهياكل والمؤشرات
المؤشرات إلى الهياكلعامل السهم (->)تمرير الهياكل بالقيمةتمرير مؤشرات الهياكلالتخصيص الديناميكي للهياكلمراجعة: تعديل الهياكل باستخدام المؤشرات11تحديات المراجعة النهائية
مراجعة: دمج السلاسل النصية الديناميكيمراجعة: مصفوفة من الـ Structsمراجعة: عداد تكرار الكلمات3مصفوفات الأحرف والسلاسل النصية
السلاسل النصية كمصفوفات charالمُنهي الصفري (Null Terminator)إدخال السلاسل النصية باستخدام scanfاستخدام strlen()استخدام strcpy()استخدام strcat()استخدام strcmp()مراجعة: دوال السلاسل النصية الأساسية