80 likes | 258 Views
ساختار ها در زبان C. Structures in C. مقدمه. از ويژگی های مهم زبان C در ++ C تحت عنوان Class هستند ساختار ها مجموعه ای از داده های غیر همنوع هستند که به گونه ای ممکن است با هم مرتبط باشند به هر یک از این داده ها عناصر ساختار می گویند. فرم کلی اعلان ساختار. struct <struct-name>{
E N D
ساختار ها در زبان C Structures in C
مقدمه • از ويژگی های مهم زبان C • در ++C تحت عنوان Class هستند • ساختار ها مجموعه ای از داده های غیر همنوع هستند که به گونه ای ممکن است با هم مرتبط باشند • به هر یک از این داده ها عناصر ساختار می گویند
فرم کلی اعلان ساختار struct <struct-name>{ <type> <element-name1>; <type> <element-name2>; <type> <element-name3>; …… …… <type> <element-name n>; }; • چون تعریف ساختار یک دستور مستقل است باید حتماً ; آورده شود • نام دلخواه است مطابق دستورالعمل زبان • نحوه تعریف عناصر ساختار همانند متغیر های عادی است
مثال: ساختاری را تعریف کنید که اطلاعات یک دانشجو را در خود ذخیره نماید Struct student { Long int id; //شماره دانشجویی حداکثر 8 رقم Char name[20]; // نام دانشجو Float average; // معدل کل دانشجو Int age; // سن دانشجو Char gender; // ‘M’ مرد= “F” جنسیت دانشجو زن= };
با تعریف هر ساختار در واقع یک نوع داده جدید تعریف می کنیم مثل student • پس از تعریف ساختار می توان انرا مانند یک متغیر معمولی انرا تعریف نمود: Student s; • این دستور متغیری بنام s از نوع student تعریف می کند • اکنون متغیر s شامل کلیه عناصر تعریف شده در ساختار مورد نظر می باشد و C بصورت خود کار حافظه لازم را به ساختار اختصاص می دهد
نحوه دسترسی به عناصر ساختار • از عملگر dot (.) استفاده می شود • ابتدا نام متغیر ساختاری و بدنبال آن نقطه و سپس نام عنصر مورد نظر • مثال مقدار دهی به عناصر متغیر ساختاری s: s.id=84122030; strcpy((s.name,”reza”); s.average=17.64; s.age18; s.gender=‘m’ • عناصر هر ساختار را می توان مانند متغیر های معمولی در ارگومان توابع مورد استفاده قرار داد: gets (s.name); scanf(“%f”,&s.average); printf(“age=%d”,s.age);
نکات مهم ساختارها • مقدار دهی اولیه به ساختار مجاز است (مشابه مقدار دهی ارایه ها) Student s={83201012, “ali”,16.90, 19, ‘M’}; 2. می توان هنگام تعریف ساختار همزمان چند متغیر از آن نوع ساختار راتعیین کرد Struct rectangle { Int x,y; // مختصات شروع Int length, width; } r1, r2; 3. استفاده از عملگر = برای دو متغیر ساختاری مجاز است به شرط اینکه هر دو از یک نوع باشند مثال: Rectangle r1, r2; R1.x=r1.y=0; R1.lenght=10; R1.width=20; R2=r1 با این دستور عناصر متغیر ساختاری r2 دارای همان مقادیر عناصر متناظر در r1 خواهند بود 4. چنانچه تعریف ساختار در خارج از کلیه توابع انجام گیرد ساختار سراسری می شود و در تمام توابع شناخته شده است (البته تعریف ساختار در داخل توابع بصورت محلی متداول نیست