You are on page 1of 13

emeronTI9

sagsg;TMrg;TinnyCamYynwg
Struct Keyword
mkdl;eBlenH GkR)akdCa)andwgy:agc,as;ehIyGMBIrebobRbkasGefr sMrab;pk
RKb;RbePTTinny dUcCaRbePTcMnYnKt; (Integer) cMnYnTsPaK (Floating -point) nigRbePTtYGkSr
CaedIm (Character). minEtb:ueNaHGkk)andwgGMBvI Fi bI egtI esrI ncMnYnTaMgenaH (Array) nigesrIn
Pointer EdlcgleTAkan;TItaMgNamYy n Memory Edlmanpk
TinnyRbePTNamYy
EdleyIgcg;)an. ]bmafaGkRtUvkar sresrkmvFi mI YysMrab;RKb;RKgBtmanrbs;buKl ki Rkumhun
{k} ehIyBtmanEdl GkRtUvkarkt;RtaBIbuKlikenaHrYmmandUcCa eQaH GtelxkgRkumhun
fExqakM eM NIt Gasydansak;enAbcb,nCaedIm EdlkgenaHGk)aneXIjfamanBtmanxHman
RbePTCa String nigxHeTotCatMlelx. CakarBitNas; eBlenHedIm,IrkSaTuk Tinnyrbs;
buKlik TaMgenaH KWGkGacbegIt Array sMrab;RbePTTinnynImYy nig rkSaTukBtmanTaMgenaH
)any:aggay kbu:EneFVItamlkNenHKWmanPaBcegtcgl; Nas; BIeRBaHvamin)anGnuBaat
eGayGkGac cUleTAdl;karBinitemIlBtmanGMBI Gasydansak;enArbs;buKlikeQaH {sm}
bkBtmanGMBIfExqaMkMeNItrbs; kBaaeQaH {K} )anedaygayRsYlenaHeT KWRtUvkarGanBIRKb;
Array EdlmanTMnak;
TMngCamYyBtmanEdleyIgRtUvkar CamYynwgelxlMdab; (Index) NamYyy:agRtwm RtUv. kbu:En/
kgPasa
C
)anGnuBaateGayeyIgmanlTPaBGaceFVIkarCamYyTMrg;

kargarRbePTenHedayviFmI yY epSgeTotEdlmanlkNRbesICagkareRbI Array dUc Edl)anerobrab;


munenH enaHKWkarerobcMTMrg;TinnyfImYyedayBakKnwH struct.
I. Definition Structure :

eyIg)ansal;bNaTinnymanTMrg;xHdUcCa Array, EdlmanbNaFatu


manRbePTTinnydUcKa . Ex: int x[100];
b:uEnebIeyIgcg;begItTinnymanTMrg;/
EdlbNaFaturbs;vamanRbePTxusKaenaHeyIgRtUv
Declaration vaCaTinn y
RbePT struct . ehIyGacehATinnyRbePT struct fa record k)an .
II. Declaration Struct:

TinnyRbePT structure RtUv Declaration eday Keyword struct, bnab;mkCabNa


field rbs; struct .
Ex1:

rYmman elxpH/ eQaHpv/ TIRkug/ dUecHeyIgGac Declaration Address CamYy


keyword struct dUcxageRkam
Address

struct Address
{ int home,
char street[20];
char city[15];
} A, B;

bm:ageTotmin)ac;maneQaHrbs; ; struct eT/ KW Declaration edaypal ;bNa Variable A, B


dUcxageRkam
struct
/* No Name */
{ int home;
char street [20];
char city[15];
} A, B;

dUecHeyIgman field bIKW Home, Street, City EdlmanRbePTTinnyepSgKa ehIymanTMnak;


TMngCamYyKabegIt)an Address . eRkaymkeyIg Declaration Variable A, B Ca struct .
eyIgGac Declaration struct nig Variable dak;epSgBIKa)an .
Note:

struct Address

190

int home;
char street[20];
char city[15];

};
Declaration Variable :
struct Address A, B;
Ex2:

edIm,I Declaration ryeBl DATE eyIgman 3field: f/ Ex/ qaM .

struct Date {
unsigned char day;

unsigned char month;


unsigned int year;
} date1, deta2;

b struct Date date1, date2


edayf/ Ex/ qaM KacMnYnGviCman dUecHeyIg Declaration Ca unsigned .
Ex3: Declaration RbvtirUbrbs;buKlikmak;rYmman eQaH/ fExqaMkMeNIt/ Gasydan/
R)ak;Ex >>> struct Date {
unsigned char day;
unsigned char month;
unsigned int year;
};
struct people { char dat;
struct Date Dob;
unsigned char sex;
struct Address addre;
float salary;
} peopleA, peopleB;
-

/*girl = 0, boy = 1*/

kg Ex3, eyIgsegteXIjfa Declaration struct kg struct .


ebIcg;tagtMleGayFatu Name eyIgsresr
peopleA.Name = Dara;

ebIcg;tagtMleGayFatu City KWsresr


peopleA.Address.City = Phnom Penh;

III. Access to Faturbs; struct:

CamYy Declaration :
struct Address
{ int home;

191

char street[20];
char city[15];
} A, B;

eyIgGac Access eTAFaturbs; struct dUcxageRkam


A.home = 118;
A.street = sihanu;
A.city = Phnom Penh;

beRbIkg Function:
printf (Enter Name Street:); gets (A.street);

IV. Declaration Array of struct:

eyIgGac declaration array of struct edIm,IpkTinny)aneRcIn


Ex: struct people a[100];

Cakar declaration Array 100, a manRbePTCa people . kdUcCabNa


epSgeTotEdr/array of struct kRtUvman index cab;BeI lx 0 eTAEdr .
Binti ]TahrN_xageRkam
date
{ char Name[80];
int day;
int month;
int year;
}
static struct date dateofbirth [ ] = {

array

Ex:5

b static struct date dateofbirth[5];

Data, 10, 3, 1970,


Bopha, 22, 4, 1968,
Vanna, 11, 11, 1950 };

deteofbirth[2].Name = Vanna;
V.

]TahrN_Gnuvtn_

]TahrN_xageRkamenHGnuvtn_nUvGVIEdleyIg)aneronkngmkdUcCa

function
# include <stdio.h>
# include <conio.h>

192

array,

struct,

# define MAX 100


struct Address {
char name[30];
int homenumber;
char street [20];
char city[15];
} addr[MAX];
void init_list (void);
void enter (void);
int menu_select (void);
void delete1 (void);
void list (void);
int find_free (void);
main ( )
{ char choice;
init_list ( );
/* create array of struct */
for (, ,)
/* loop have no condition */
{ choice = menu_select ( );
switch (choice)
{case 1: enter( ); break;
case 2: delete1 ( ); break;
case 3: list ( ); break;
case 4: exit (0);
}
} }

edIm,IbegtI tMlrbs;

function init_list
array Address
/* create list of Address */
void init_list (void)
{ register int t;
for (t = 0 ; t < MAX ; ++t)
addr[t].name[0] = \0;
}
/* create menu selete*/
int menu_select (void)
{ char s[80] ;
int c ;
printf (1. Enter Name \n);
printf (2. Delete Name \n);
printf (3. List Name \n );
printf (4. Exit \n);
do {

193

printf (\n Please select your choose:);


gets(s);
c = atoi(s);
} while (c< 0 || c > 4);
return (c);
}
/*Enter Address into list */
void enter (void)
{ int slot ;
char s[80] ;
/* find free space in array for access */
slot = find_free ( );
if (slot = = -1) {
printf (\n list is full !);
return ;
}
printf (Name :); fflush(stdin); gets (addr[solt].name);
printf (Home Number :);
scanf (%d, &addr[solt].homenmber)
while (gecthar ( )!=\n;
prinft (Name street :); gets(addr[solt].street);
printf( City :) ; fflush(stdin); gets(addr[slot].city);
}
/*find free space */
int find_free (void)
{ register int t;
for(t = 0;addr[t].name[0] && t<MAX;t++)
if (t = =MAX) return (-1); /*No free space*/
return(t);
}

cMNaM eyIgeRbItM l -1 edIm,IR)ab;faGs;


eRbIR)as;Ca Index.

/*Delete*/
void delete1 (void)
{ register int slot;
char s[80];

194

space

. tMl-1 CatMlEdl

array

min

printf (Number of Record # :); gets(s);


slot = atoi (s);
if (solt >= 0&& slot <MAX)
addr[slot-1].name[0]= \0;
}
/* Display Data On Screen */
void list (void)
{ register int t;
for (t = 0; t <MAX ; ++t)
{ if (addr[t].name[0])
{ printf (%s \n, addr[t].name);
printf (%d \n, addr[t].homenumber);
printf (%s \n, addr[t].street);
printf (%s \n, addr[t].city);
}
}
printf (\n\n);
}

kg function enter( ), eyIgeQIjfa


scanf (%d, &addr[slot].homenumber);
while (getchar( ) !=\n);

eBleyIg Read pHelx, eyIgRtUveRbIsBaa Address & edIm,I Read . cMnucmYyeTot


eyIgRtUveRbI statement while (getchar( ) !=\n); edIm,IrMlgsBaa Enter
ehIyeyIgcuHedImbnat;fI . ebIKan statement enH, enaH statement Read mgeTotnwgxus.
ebIeyIglub statement while (gechar( ) !\n); enaHeBleyIg Read eQaH street
nwgKanGIVTaMgGs;.
VI.

bBal

parameter eRkamerog struct eTAeGay function :

eBlbBal parameter RbePT struct eTA function, eyIgGacbBanbNa


nImYyrbs; struct eTAeGay struct . ]TahrN xageRkamnwgGFib,ayBIbBaaenH.
struct toto
{ char x;
int y;
float z;
char s[10];

195

filed

}tata;

nImYyrbs;

field
struct
func1 (tata.x);
func2 (tata.y);

nwgRtUvbBaneTAeGay function dUcxageRkam :

bBan Address rbs; string s*/


func4 (tata.s[2]); /*bBan value character */
/* eyIgGacbBan Address rbs;bNa field eTAeGay function
func3 (tata.s);

/*

func1 (&tata.x);
func2 (&tata.y);
func3 (tata.s)
func4 (&tata.s[2]);
+

bBan Address rbs; string*/


/*bBan character*/

/*

bBan parameter Ca struct :


Ex7:
#include <stdio.h>
struct type_toto {

int a, b;
};
void f1 (struct type_toto parm);
main ( )
{ struct type_toto arg;
arg. a= 1000;
f1 (arg);
}
void f1 (struct type_toto parm)
{ printf(%d, parm.a);
}

VII. Pointer of stuct :

kgCGnuBaatieGayeRbI Pointer point to struct )an.


Ex:
struct bal {
char name[80] ;
} person ;

196

*/

strcut bal *p;

KWCa Declaration pointer RbePT bal (struct),. EtminTan;man Address Cak;EsgeT . eyIgtag
p = &person ;

eBlenH p pk Address CamYyFaturbs; struct tamry pointer point to vaenH/ eyIgeRbIR)as;


operator EdlmansBaa . ]bmancg; point to field balance,eyIgRtUvsresr p balance;
Note: cMeBaHkar Access CamYyFaturbs; struct tamry pointer enaHeyIgeRbIsBaa .
cMBaH access CamYyFaturbs; struct tamry variable FmtaenaHeyIgeRbIsBaa (.) .
Ex8: GFib,ayBInaLikar
# include <stdio.h>
# define DELAY 128000
struct my_time { int hours;
int minutes;
int seconds;
int hunds;
};
void display (struct my_time *t);
void update (struct my_time *t);
void delay (void);
main ( )
{ struct my_time systime ;
systime.hours = 0; systime.minutes = 0;
systime.seconds = 0; systime.hunds = 0;
textmode(C40); textbackground(1);
textcolor(14);clrscr ();
for (; ;)
/* loop have no condition */
{ update (&systime);
display (&systime);
}
return 0;
}
void display (struct my_time *t)
{gotoxy(18, 12 ); cprintf (%02d :, thours);
gotoxy(21,12); cprintf (%02d :, tminutes);
gotoxy(24,12) ; cprintf (%02d :, tseconds);
gotoxy(27,12); cprintf (%02d , thunds);
}

197

void update (struct my_time *t)


{ thunds ++;
if (thunds = = 100)
{ thunds = 0;
t seconds ++;
}
if (tseconds = = 60)
{ tseconds = 0;
t minutes ++;
}
if ( tminutes = =60)
{ tminutes = = 0;
thours ++;
}
if ( thours = = 24) thours = 0 ;
delay ();
}
void delay (void)
{ long int t;
for (t = 1; t < DELAY; ++t);
}

lTpldUcxageRkam

Note :

14 : 02 : 55 : 50
-

eyIgGacERbRbYltMlrbs ; DELAY edIm,IkmvFi tI eM NIrkaryWt


kgEpkxagedImnkmvFi /I eyIg Dclaration struct my_time EtminTan;man variable
Cak;EsgeT . kgEpk main( ) eyIg Declaration systime EdlmantMledIm 00: 00:00 .
mannyfa systime, dMeNIrkarEtkg main ( ) Etb :ueNaH .
Function update ( ) eFVIeGayERbRbYltamryeBl nig function display ( )
eRbIsMrab; display result on screen . kg Function TaMgBIrsuTEtman parameter Ca
pointer point to my_time . In Function update() nig display(), Fatu
nImYyrbs; systime RtUv)an Access tamry pointer . edayvaGac update
tamlryeBl .
198

VIII. union:

ebIeyIg Declaration variable eRcInCa Function enaHvaeRbIEt block memory


EtmYyb:ueNaH/ eTaHCaenAryeBlxusKakeday ]TahrN_
union

union table {

int number;
long address;
char code;

};
union table a;
union table b;
union table c;

dUecH Declaration Ca union eFViIeGaymankarsnSMsMc memory .

=====*=====

199

lMhat;Gnuvtn_
1.

1.1.

cUrsresrkmvIFIGnuvtn_xageRkam
a. Read form Keyboard nUv Data n array of struct EdlmanRbePTCa point
dUcxageRkam
struct point { int num ;
float x ;
float y ;
}

cMnYnFatun array RtUvkMNt ;eday statement # define


b. Display the Result on screen.

sresrkmvIFIxagelIeRkamrag Function : Funtion mYysMrab; Read Data, Function


mYyeTotsMrab; Display .
2. sMnYrbEnm
1.2.

union table a;
2.1.

cUrrkcMnucxuskg struct xageRkam


struct parts
{ int partno;
char descript[20];
float price;
char *ptr;

2.2.

eFVIdUcemcedIm,IsMEdgFatu partno rbs; parts.

struct inven
{ int partno ;
}
/* struct inven parts; */
struct inven parts;
struct inven *ptr = &parts;
a. part.partno
b. ptrpartno
c. partno
d. a
b

nig

200

2.3.

cUrbegIteQaHmYyeGay character TI3 n variable name rbs; address .


struct fullname{
char firstname[20];
char lastname[20];

};
struct addr
{ struct fullname name ;
char address[60];
char city[4];
}
struct fullname
{
char firstname[20];
char lastname[20];
}
struct addr address;
struct addr *ptr = &address;
a. address.namefirstname[2];
b. ptrname.firstname[2];
c.
a, b

cMelIy suTEtRtUv
d. KancMelIyRtwmRtUveT .

=====*=====

201

You might also like