Ëåêöèéí
çîðèëãî:
Ñýäâèéí
õ¿ðýýíä
çààã÷ ãýæ
þó áîëîõ, çààã÷èéã
ÿìàð ¿åä ÿàæ
àøèãëàõ âý
ãýäãèéã, õýðýãëýý
íü þó áîëîõ
ÿìàð
òºðë¿¿äýä ÿàæ
õýðýãëýäýã,
çààã÷èéã
õýðýãëýõ
¿åä ãîë
àíõààðàõ
ç¿éë þó âý,
äèíàìèê
ñàíàõ îéí ìóæûí
õóâèðãàëò
áà ÷ºëººëºëò,
çààã÷èéí òºðºë
áóþó òºðºëò
çààã÷èéã
õýðõýí
àøèãëàäàã
òóõàé
ñóäëàõ ìºí
ñóäàëñàíàà
ã¿íçãèéð¿¿ëýõ
áîëíî. Ãîë íü
áèä
C++-ïðîãðàì÷èëàëûí
õýëíèé
îíöëîã áîëîõ
void
çààã÷èéí
òóõàé ìýäýõ
þì. Ò¿¿í÷ëýí
óëàìæëàëò á¿òöèéí
ïðîãðàì÷èëàëààñ
îáúåêò
õàíäàëòàò
ïðîãðàì÷èëàë
íü çàð÷èìûí
õóâüä ÿìàð ÿëãààòàé
âý, ÿìàð
äàâóó
òàëóóä
áàéíà âý ãýäãèéã
áàãà ÷
ãýñýí
ñóäëàæ,
ìýäñýíýý áàòàëãààæóóëàõ
áîëíî. ̺í
õóâüñàã÷èéí
òºëººëñºí
íýð áîëîõ
çààëòûí
òàëààð
çààã÷òàé
õàðüöóóëàõ
çàìààð
ñóäàëíà.
Ýíãèéí
òàéëáàð:
Äèíàìèê
ñàíàõ îéã
õýðýãëýõ,
ñàíàõ îéã ¿ð
àøèãòàé
õýðýãëýõèéí
òóëä áèä
çààã÷èéã
õýðýãëýäýã.
Çààã÷ áà
çààëòûã
òàëààð äîîðõ
õýñýãò
äýëãýðýíã¿é
òàéëáàðëàõ
ó÷èð
ýíä ýíãèéí
æèøýýãýýð
ä¿éö¿¿ëýí
òàéëàðëàÿ.
Áàò 4
äàâõàðûí õàìãèéí
çàõûí 415 òîîò
ºðººíä
ñóóäàã.
Õàðèí Áîëä 3
äàâõàðûí ýõíèé
301 òîîò ºðººíä
ñóóäàã.Ñàíàõ
îéä
õóâüñàã÷èä
õàÿã á¿õèé
¿¿ðýíä
áàéäàã áîë
Áàò Áîëä 2 ÷ 415
áà 302 òîîò õàÿã
á¿õèé ºðººíä
ñóóäàã áàéõ
íü. Áèä
Áîëäûã õàéæ
îëîõûí òóëä
ò¿¿íèé õàÿã
áîëîõ 415 òîîò
ºðººãººð îëæ
áîëíî. Òà
á¿õýí
ñàíàæ
áàéãàà áîë int
I=13;
èëýðõèéëëèéí
õóâüä
õóâüñàã÷èéí
¿¿ð ð¿¿
õàíäàõäàà
ººðººð õýëáýë
13 ãýñýí òîî ðóó
õàíäàõäàà I
õóâüñàã÷èéí
íýðýýð
ýñâýë
ò¿¿íèé
ñàíàõ îé
äàõü
õàÿãààð
áóþó çààã÷
õýðýãëýæ
õàíäàæ
áîëîõ
þì.Òýãâýë
Áàòûí ºðºº
ð¿¿
õàíäàõäàà
Áàòûí ºðºº
ãýäãýýð
ýñâýë 415-ð ºðºº
ãýæ õàíäàæ
áîëîõ þì.Àëü
÷ òîõèîëäîëä
áèäýíä
îéëãîãäîíî.Äýýðõ
èëýðõèéëýëýýñ
Áàòûã I
õóâüñàã÷òàé,
õóâüñàã÷èéí
ñàíàõ îé
äàõü
õàÿãèéã 415
òîîòòîé
ä¿éö¿¿ëæ
áîëîõ þì. Ýíä
çààã÷ áà
õóâüñàã÷èéã
ýíãèéíýýð
òàéëáàðëëàà.
Õàðèí çààëò
áóþó
õóâüñàã÷èéí
òºëººëñºí
íýð ãýäýã íü
Áàòûí
ýñâýë
Áîëäûí
ºðººã ººðººð
íýðëýíý
ãýñýí ¿ã þì.
Áàòûí ºðººã 4–ð
äàâõàðûí
çàõûí ºðºº
ãýæ íýðëýæ
áîëîõ òóõàé
ë ýíä ÿðèãäàæ
áàéíà. Áèä
Áàòûí ºðººíä
î÷îîä èð,
ýñâýë 4-ð
äàâõàðûí
õàìãèéí
çàõûí ºðººíä
î÷îîä Áàòûã
äóóä ãýõ ìýò
ÿðüæ áîëäîã
øèã õóâüñàã÷èéí
ººð íýðýýð
òºëººë¿¿ëæ
áîëäîã þì.
Æèøýý íü I
õóâüñàã÷èéã
I_ref ãýñýí ººð
íýðýýð
òºëººë¿¿ëæ
àëü ÷ íýðýýð
íü õàíäàæ
áîëíî. Èíãýõýä
íýã ë ¿¿ðýíä
õàíäàõ íü
îéëãîìæòîé.Åð
íü Áàòûí ºðºº
ãýõ ìýò
ºðººí¿¿äèéã
çàõûí ºðºº,
òýðíèé ºðºº,
ýíýíèé ºðºº
ýñâýë á¿ð òýä
äýõ ºðºº, õàð
áàðèóëòàé
ºðºº, øàð
ìîäîí õààëãàòàé
ºðºº ãýõ ìýò
õýäýí ÷
ÿíçààð íýðëýæ
áîëæ áàéãàà
áèç. Òýãâýë
ýíý ë áèäíèé
¿çýõ ãýæ áóé
çààëò
þì.Çààëò
ãýäýã íü
õóâüñàã÷èéí
òºëººëñºí
íýð áóþó
ò¿¿íèé ººð
íýð þì. Áàòûí
ºðººã ººðººð
íýðëýñýí
íýðýýðýý Áîëäûí
ºðººã áàñ
íýðëýæ
áîëîõã¿é.
Ýíý ë çààëòûí
îíöëîã þì.
Òýãâýë
çààã÷ íü
õàÿã àãóóëæ
áàéäàãààñ
ãàäíà ººð
õàÿã ðóó áàñ
øèëæèæ
áîëäîã þì.
Òºðºëò
çààã÷
C
áîëîí C++
õýë¿¿äýä
çààã÷ ìàø
÷óõàë
àñóóäëóóäûí
íýã áîëäîã. C++-ä
çààã÷èéã
Ñ-ä
çàðëàäãèéí
àäèë çàðëàíà.
Çààã÷
çºâõºí
ººðèéí
çàðëàãäñàí
òºðëèéí
õóâüñàã÷èéã
çààæ ÷àäíà.
Çààã÷èä
óòãà
îëãîîã¿é
¿åä òýð ÿìàð
÷ îáúåêòûã
çààõã¿é,
õàðèí ò¿¿íä
ÿìàð íýãýí
õóâüñàã÷èéí
õàÿãèéã
îëãîõäîî &
¿éëäëèéã
àøèãëàíà.
Çààã÷èéí
çààæ áóé îáúåòîä
õàíäàõäàà *
òýìäãèéã
àøèãëàäàã.
Íýã çààã÷èä
íºãºº
çààã÷èéí
õàÿãèéã îëãîæ
ìºí
çààã÷äûã
õîîðîíä íü
õàðüöóóëæ áîëíî.
Òºðºëò
çààã÷èéã
àøèãëàõäàà
ìºí õóâüñàã÷èéí
íýðèéí ºìíº *
òàâèíà.
Òºðºëò
çààã÷ íü
íýãýí
òºðëèéí
õóâüñàã÷èéã
çààñàí áîë
ººð òºðëèéí
õóâüñàã÷èéã
çààæ
÷àäàõã¿é.
Æèøýýëáýë:
POINTER.CPP æèøýýã
àâ÷ ¿çüå.
POINTERS.CPP –òºðºëò
çààã÷ áîëîí
void çààã÷
1.
#include <iostream.h>
2.
void main()
{
3.
int *pt_int;
4.
float *pt_float;
5.
int pig = 7, dog = 27;
6.
float x = 1.2345, y = 32.14;
7.
void *general;
8.
pt_int = &pig;
9.
*pt_int += dog;
10. cout << "Pig now has the value of "
<< *pt_int << "\n";
11. general = pt_int;
12. pt_float = &x;
13. cout << "pt_float now has the value of "
<< pt_float << "\n";
14. pt_float = 5 + (*pt_float);
15. cout << "pt_float now has the value of "
<< pt_float << "\n";
16. general = pt_float;
17. cout << "general now has the value of "
<< *(float*)general << "\n";
18. general = pt_int;
19. cout << "general now has the value of "
<< *(int*)general << "\n";
20. const char *name1 = "John"; // óòãà
íü
ººð÷ëºãäºõã¿é.
21. char *const name2 = "John"; //
çààã÷ íü
ººð÷ëºãäºõã¿é
}
¯ð ä¿íä:
Pig now has the value of 7
Pig
now has the value of 34
pt-float
now has the value of 1.2345
pt-float
now has the value of 6.2345
general
now has the value of 6.2345
general
now has the value of 7
ªºðººð
õýëáýë pt_int çààã÷ íü integer
áóþó á¿õýë
òîîí
òºðëèéí
õóâüñàã÷èéã
ë çààõ áà ººð float òºðëèéí
õóâüñàã÷èéã
çààæ
÷àäàõã¿é.
Ïðîãðàìûí 8-ð
ìºðºíä pt_int
çààã÷ íü pig
õóâüñàã÷ààñ
ººð òºðëèéí õóâüñàã÷èéã
çààõã¿é. 9-ð
ìºðºíä pt_int
çààã÷èéã dog-èéí
õýìæýýãýýð
èõýñãýæ
áàéãàà áîëîõîîñ
áèø dog
ðóó çààëãàæ
áàéãàà
õýðýã áèø þì.
Õýðýâ dog
ðóó çààëãàÿ
ãýâýë pt_int=&
dog ãýñýí
¿éëäëèéã
õèéõ ¸ñòîé.
Pt_int pig
dog
Òºðºëò
çààã÷èéí
ñàíàõ îéí
¿¿ðýí
äîòîðõè
óòûã õýâëýå
ãýâýë ºìíº
íü * òàâüæ
õýâëýíý,
õàðèí çààæ
áàéãàà
óòãûã íü
õýâëýå
ãýâýë ºìíº
íü îä
òàâèõã¿é.(
ýíý íü
ïðîãðàìûí 10,13-ð
ìºð þì.)
Òîãòìîë
çààã÷,
òîãòìîëûí
çààã÷
C++-ä
òîãòìîë
çààã÷,
òîãòìîëûí
çààã÷èéí àëü
àëü íü ººð÷ëºãääºãã¿é.
1.
Òîãòìîëûí
çààã÷èéí
çààñàí ÿìàð
õóâüñàã÷ íü
ººð÷ëºãääºãã¿é áîëîâ÷
òîãòìîëûí
çààã÷ íü
ººðºº
ººð÷ëºãäºæ
áîëíî. Òîãòìîëûí
çààã÷èéã
òîäîðõîéëîõûã
POINTER.CPP ïðîãðàìûí
20-ð ìºðºíä
çààæ ºã÷ýý.
2.
Òîãòìîë
çààã÷ûí
çààñàí
óòãà íü
ººð÷ëºãäºæ
áîëíî õàðèí
ººðºº
ººð÷ëºãääºãã¿é.
Çààã÷
ººðèéí
òîãòìîë
øèíæ
÷àíàðààñ
áîëîîä ººð
õàÿã ðóó
øèëæèõã¿éã
òà ìýääýã
áîë ò¿¿íèéã
òîãòìîë
çààã÷ ãýæ
¿ç, õàðèí õóâüñàã÷
íü
ººð÷ëºãäºõã¿éã
ìýäýõ þì áîë
ýíý íü
òîãòìîëûí
çààã÷
áîëîõûã
òîäîðõîéëíî.
Îäîî
õóâüñàã÷
ººð÷ëºãäºæ
áàéãàà ýñâýë
çààã÷ íü
ººð÷ëºãääºãèéã
ìýäýõèéí
òóëä Const
ò¿ëõ¿¿ð
¿ãèéã
àøèãëàí
çààã÷èéí
õýðýãëýýí¿¿äèéã
ñóðàõ íü
÷óõàë. ¯¿íèé
òóëä const ò¿ëõ¿¿ð
¿ãèéã
òàéëàí
óíøèæ
÷àääàã áàéõ ¸ñòîé.
Õýðýãëýýíèé
äàðààõ
òîõèîëäëóóä
áàéäàã.
1.
const char *buf;
2.
char const *buf;
3.
char * const buf;
4.
char const * const buf;
ãýñýí
òîõèîëäëóóäûã
ýíä
òàéëáàðëàõ
áîëíî.
Ø
C++-ä
Ñ-ýýñ
ÿëãààòàé
ç¿éë íü const ò¿ëõ¿¿ð
¿ãèéã
àøèãëàí
ìàññèâûí
õýìæýýã
òîäîðõîéëîí
¿ç¿¿ëæ
áîëíî.
int const size=10;
char buf [size]
//- 10 õýìæýýñò ìàññèâ
çàðëàãäàâ.
Ø
Const ò¿ëõ¿¿ð
¿ãíèé
öààøäûí
õýðýãëýýí¿¿ä
íü çààã÷ààð
èëýðäýã.
Char const *buf;
Buf- íü ñhar
òºðëèéã
çààõ çààã÷
õóâüñàã÷. Buf-ýýð
çààãäñàí
þó÷ áàéñàí
ººð÷ëºãäºõã¿é
õàðèí buf
çààã÷ íü
ººðºº
ººð÷ëºãäºæ
áîëíî. ªºðººð
õýëáýë (buf++;) ¿éëäëèéã
çºâøººðíº . const
char* buf íü
äýýðõè
¿éëäýëòýé èæèë
áàéíà.
Ø
char *const buf;
Buf
íü ººðºº const
çààã÷ òóë buf
íü
ººð÷ëºãäºõã¿é.
Õàðèí buf-ýýð
çààãäñàí
ÿìàð÷ char
òºðëèéí
õóâüñàã÷ íü
ººð÷ëºãäºæ
áîëíî.
Ø
char const * const buf;
Èéì
çààã÷
áàéæ áîëîõ
òàéëòàé. Ãýâ÷
õýðýãëýý
áàãàòàé þì. Çààã÷
áîëîí
çààãäàõ
õóâüñàã÷ íü
ººð÷ëºãäºõã¿é
ãýñýí ¿ã.
Const ò¿ëõ¿¿ð
¿ãèéí ãîë
çàð÷èì íü
äàðààõ õýëáýðòýé
áàéõ áîëíî.
Ò¿ëõ¿¿ð
¿ãíèé ºìíº
áàéãàà þó ÷
áàéñàí
ººð÷ëºãäºõã¿é
const îðñîí
çàðëàëòàíä
õóâüñàã÷
ýñâýë ôóíêöýýñýý
ýõëýæ
óíøèíà.
Æèøýý íü:" buf íü
òîãòìîë
çààã÷,
òîãòìîë char
òºðëèéí õóâüñàã÷èéã
çààíà” ãì ..
int
main()
{ char const *buf=”Hello”;
buf++; //
áîëíî.
*buf=”a”; //
áîëîõã¿é.
return (0);
}
Îäîî òà ÿàãààä
buf++
¿éëäýë íü
áîëæ *buf=”a”
¿éëäýë
áîëîõã¿é
áàéãààã
îéëãîñîí
áèçýý.
VOID
Çààã÷
Void çààã÷ íü
íü Ñ–ã áîäâîë
Ñ++ èë¿¿
÷óõàë ¿¿ðýãòýé.Ýíý
çààã÷ íü
ÿìàð ÷
ºãºãäëèéí
òºðëèéã
çààæ ÷àäíà.
ªºðººð
õýëáýë
void
çààã÷
çàðëàãäñàí
¿åä òýð íü
á¿õýë, áîäèò, òýìäýã
òºðëèéã
çààæ ÷àäíà.
̺í
ò¿¿í÷ëýí
õýðýãëýã÷èéí
òîäîðõîéëñîí
òºðëèéã ÷ çààæ
÷àäíà. Òýäíèéã
õààíà
çàðëàõààñ
íü
øàëòãààëæ local, global void
çààã÷ ãýæ
àíãèëíà. Pointer.cpp
æèøýýíä void *general; ãýæ
íýãýí
çààã÷ àâàí
ò¿¿íèéã float òºðëèéí
õóâüñàã÷èéã
çààõ òºðºëò
çààã÷èéã
çààëãàâ (general=pt_float; general= pt_int) Õàðèí float
áîëîí int
òºðëèéí
õóâüñàã÷èäûã
çààëãàÿ
ãýâýë general=&y;
general=&dog ãýæ
àøèãëàíà.
Void
çààã÷èéã
õýâëýõýä
ò¿¿íèé
ñàíàõ îéä
çààõ ¿¿ðèéí
äóãààðûã
õýâëýõ
áîëîõîîð
ò¿¿íèé
çààæ
áàéãàà
ñàíàõ îéí
¿¿ðýí äýõ
óòãûã
õýâëýõäýý:
*(ÿìàð
òºðëèéí
õóâüñàã÷
çààæ
áàéãàà áè÷ýýä
*) çààã÷èéí
íýð ãýñýí
ôîðìàòààð
õýâëýíý.
Íýìæ
àíõààðóóëàõàä
òºðºëò
çààã÷èéí
óòãûã void
çààã÷èä
îëãîæ áîëîõ
áîëîâ÷
õàðèí void çààã÷èéí óòãûã
òºðºëò
çààã÷èä îëãîæ
áîëîõã¿é.
int I=10;
int * pt_int=&I;
void * buf=pt_int;
Pt_int=buf;//--áóðóó
Õàðèí
void çààã÷èéã òºðºë
õóâèðãàëò
õèéñíèé
äàðàà ýíý
¿éëäëèéã
çºþøººðäºã.
Pt_int= int(buf);// çºâ.
Void
çààã÷ íü
ººðºº ñàíàõ
îéí ¿¿ðýíä
áàéðëàõ áà
òýíäýý çààæ
áàéãàà
ñàíàõ îéí
¿¿ðýí äýõ
õàÿãàà
õàäãàëæ
áàéäàã.
Çààã÷
çààëò
õî¸ðûí ÿëãàà
Äîîð
çààã÷ çààëò
õî¸ðûí
õîîðîíäûí
õýä õýäýí
ÿëãààã
õàðóóëàâ
Ø
Çààëò
íü
äàíãààðàà
îðøèõã¿é.
ªºðººð õýëáýë
ÿìàð íýãýí
þìûã
òºëººëºõã¿éãýýð
äàíãààð
îðøèõã¿é.
Òóõàéëáàë int &ref;
Ýíäýýñ
õàðàõàä ref þóã
òºëººëºõ þì
áý ãýñýí
àñóóäàë
òóëãàðíà.
Ø
Çààëò
íü ôóíêöûí
ïàðàìåð
ìàÿãààð
îðøèæ áîëíî.
Ø
Çààëò
íü class-ûí
ãèø¿¿í
ºãºãäºë
ìàÿãààð
õýðýãëýãäýæ
áîëíî.
Ø
¯¿íýýñ
ÿëãààòàé íü
çààã÷ íü
ººðºº õóâüñàã÷
þì.
Ø
Çààã÷
íü ººð ººð
õóâüñàã÷èéã
çààæ ÷àäíà
Ø
Çààëò
íü òºëººëæ
áàéãàà
õóâüñàã÷òàéãàà
ñàíàõ îéí
íýã ¿¿ðýíä áàéðëàäàã
áîë çààã÷ íü
ººð ¿¿ðýíä
áàéðëàäàã.
|