Professional Documents
Culture Documents
int n; çàðëàãäàõ ³åä Ñè õýë stack äýýð 4byte ñàíàõ îé í°°ö°ëí°. n-èéí õàÿãèéã õýâëýõäýý
%u ãýæ çààæ °ã÷ áàéãàà íü unsigned int ò°ðëèéã õýâëýæ áàéãààã Ñè ãàðàëòûí ñèñòåìä õýëæ
°ã÷ áàéíà.
Ñàíàõ îé 32bit-èéí ³éëäëèéí ñèñòåì äýýð 0..232 − 1 õ³ðòýë äóãààðëàãäñàí áàéäàã. Òèéìýýñ
ñàíàõ îéí õàÿã 4byte áóþó 32bit ñàíàõ îéä áàãòàíà.
int ò°ð°ë 231-èéã õàñàõ òîîíä, àõèàä 231-èéã íýìýõ òîîíä, íèéòäýý 231 + 231 = 2 ∗ 231 = 232
çýðýãò áóþó 4byte-èéã ýçýëäýã. Õýðâýý áèä ñàíàõ îéí õàÿãèéã int ò°ð°ëä õàäãàëàõ ãýæ áàéãàà
áîë unsigned int ò°ð°ëä õàäãàëáàë îðîí õýòðýë ³³ñýõã³é. Ó÷èð íü int ò°ð 231 − 1 õ³ðòýëõ íýìýõ
òîîíóóäûã õàäãàëæ ÷àääàã áàéõàä ñàíàõ îé 232 − 1 õ³ðòýë äóãààðëàãäñàí áàéõ þì. Õàðèí
unsigned int õàñàõ òîî õàäãàëäàãã³é ó÷ðààñ á³õ 4byte-èéã ýåðýã òîî õàäãàëàõàä çîðèóëäàã òóë
232 − 1 õ³ðòýë òîîã õàäãàëæ ÷àäíà.
# include < stdio .h >
int main () {
int n ;
unsigned int addr = ( unsigned int ) & n ;
scanf ( " % d " , addr ) ; // scanf ("% d " , & n ) ; ene uildeltei ijil
// uchir ni scanf - ruu n - iin haygiig damjuulna
printf ( " % d \ n " , n ) ;
}
int main () {
int n = 5;
int s = 3;
unsigned int addr_n = ( unsigned int ) & n ;
unsigned int addr_s = ( unsigned int ) & s ;
printf ( " % u \ n " , addr_n - addr_s ) ;
return 0;
}
Çóðàã 1: stack
ÌÓÈÑ-ÕØÓÈÑ ÌÊÓÒ
Ñàíàõ îéí õàÿã 4byte-èéã õàäãàëàõ çîðèóëàãäñàí õóâüñàã÷äûã õàÿãàí õóâüñàã÷èä ãýíý. Õàÿãàí
õóâüñàã÷ óòãààðàà ñàíàõ îéí õàÿã àâäàã.
ijðýì:
ò°ð°ë *íýð;
Æèðèéí õóâüñàã÷ààñ ÿëãàõäàà íýðèéíõ íü °ìí° îä (*) òàâèíà.
# include < stdio .h >
int main () {
int n = 5;
int * p ;
p = &n;
printf ( " % u \ n " , & n ) ;
printf ( " % u \ n " , p ) ;
return 0;
}
n:1200 5 4byte
int main () {
int n = 5;
int * p ;
p = &n;
printf ( " % d \ n " , * p ) ;
ÌÓÈÑ-ÕØÓÈÑ ÌÊÓÒ
* p = 3;
printf ( " % d \ n " , n ) ;
return 0;
}
Á³òýö ò°ðëèéí õàÿãèéã õàäãàëàõ õàÿãàí õóâüñàã÷èéí õóâüä äîîðõ áàéäëààð ãèø³³äýä íü
õàíäàæ áîëäîã.
struct Student {
char name [20];
float mark ;
};
int main ()
{
struct Student bat ;
struct Student * p = & bat ;
p - > mark = 100;
strcpy (p - > name , " Bat " ) ;
// ...
}
2 Äàñãàëóóä
2.1 Àíãèä
2. even() ôóíêöèéã òîäîðõîéë. Óã ôóíêö íü n òýãø òîî áàéâàë äàìæóóëñàí int ò°ðëèéí
õàÿã äîòîðõ óòãàä 1-ã, ³ã³é áîë 0-ã îíîîíî.
void even ( int n , int * p )
{
// ....
}
int main ()
{
int x , n ;
scanf ( " % d " , & n ) ;
even (n , & x ) ;
if ( x == 1)
printf ( " tegsh \ n " ) ;
else
printf ( " sondgoi \ n " ) ;
ÌÓÈÑ-ÕØÓÈÑ ÌÊÓÒ
return 0;
}
int main ()
{
int a [100];
read (a , 5) ; // lab 9.3 - iin read , print funkts
print (a , 5) ;
int x , y ;
find (a , 5 , &x , & y ) ;
printf ( " tegsh toonuudiin too : % d \ n " , x ) ;
printf ( " sondgoi toonuudiin too : % d \ n " , y ) ;
return 0;
}
6. Îþóòàí á³òöýä ãàðààñ óòãà àâàõ read_student() ôóíêö, íýðèéã íü °°ð÷ë°õ change_name()
ôóíêö³³äèéã òóñ òóñ òîäîðõîéë.
struct Student {
char fname [20] , lname [20] , id [10];
ÌÓÈÑ-ÕØÓÈÑ ÌÊÓÒ
float golch ;
};
void read ( struct Student * s )
{
// ...
}
// oyutnii medeelel hewlex funkts
void print ( struct Student s )
{
// ...
}
2.2 Ãýðò
2. Õ³ñíýãòýýñ value ýëåìåíòèéã õàéæ, îëäñîí õàÿãèéã áóöààõ äîîðõ ôóíêöèéã õýðýãæ³³ë.
Îëäîõã³é áîë NULL õàÿã áóþó 0-ã áóöààíà.
int * search ( int a [] , int value , int size ) ;
int main ()
{
int a [100];
read (a , 5) ;
print (a , 5) ;
int * p ;
p = search (a , 3 , 5) ;
if ( p == NULL )
printf ( " Oldsongui \ n " ) ;
else
printf ( " % d too % d bairlald oldloo \ n " , *p , p - a ) ;
return 0;
ÌÓÈÑ-ÕØÓÈÑ ÌÊÓÒ