لغة C/C++ : المؤشرات Pointers والسجلات Structures فى هذه المقالة نتناول موضوع من اهم موضوعات لغةC وهو المؤشراتPointers والسجلاتStructures وذلك من خلال التعرف على النقاط التالية: - معنى المؤشرات ومزايا استعمالاتها - استعمال المؤشرات مع أنواع البيانات المختلفة - السجلات وكيفية استعمالها - مصفوفة السجلاتArray of Structures المؤشر هو طريقة للاعلان عن المتغيرات من أى نوع حيث تمكن المبرمج من التعامل مع عنوان المكان المحجوز فى الذاكرة مباشرة وليس القيمة. ويتم الاعلان عن مؤشر الى أى متغير بوضع العلامة * قبل اسم المتغير كما فى الصور التالية:
int *a float *b char *c
#include "stdio.h" int main(int argc, char* argv[]) { 1: char *gr="Welcome With You.." 2: printf("n %snn",gr) return 0 }
#include "stdio.h" int main(int argc, char* argv[]) { int i 1: char *names[5]={"Nabile","Azab","Samy","Hamdy"} for (i=0 i<4 i++) 2:printf("nn%sn",*(names+i)) return 0 }
struct student { int No char name[30] char tel[12] char Adre[30] }
#include "stdio.h" int main(int argc, char* argv[]) { 1: struct student { int no char name[20] char tel[12] } 2:struct student st1 printf("n No,Name,Tel=") 3:scanf("%d,%s,%s",&st1.no,st1.name,st1.tel) printf("nn No,Name,Tel=%d,%s,%snn",st1.no,st1.name,st1.tel) return 0 }
#include "stdio.h" int main(int argc, char* argv[]) { int i 1: struct student { int no char name[20] char tel[12] } 2: struct student st[5] 3: for (i=0 i<5 i++) { printf("n STU No:%d:No,Name,Tel:",i) scanf("%d,%s,%s",&st[i].no,st[i].name,st[i].tel) } 4:for (i=0 i<5 i++) printf("n STU No:%d:%d,%s,%s",i,st[i].no,st[i].name,st[i].tel) return 0 }
struct student *st1
scanf("%d,%s,%s",&st1->no,st1->name,st1->tel)