Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet18/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   14   15   16   17   18   19   20   21   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

= çíà÷åíèå
èëè â êðóãëûõ ñêîáêaõ:
( çíà÷åíèå )
Êîíñòaíòa äîëæía áûòü èíèöèaëèçèðîâaía ïðè îáúяâëåíèè. Â îäíîì îïåðaòîðå ìîæíî îïèñaòü íåñêîëüêî ïåðåìåííûõ îäíîãî òèïa, ðaçäåëяя èõ çaïяòûìè.
Ïðèìåðû:
short inta= 1; // öåëaя ïåðåìåííaя a const char C = 'C'; // ñèìâîëüíaя êîíñòaíòa Ñ
char s, sf = 'f'; // èíèöèaëèçaöèя îòíîñèòñя òîëüêî ê sf char t (54);
float c = 0.22, x(3), sum;
Åñëè òèï èíèöèaëèçèðóþùåãî çía÷åíèя íå ñîâïaäaåò ñ òèïîì ïåðåìåííîé, âû- ïîëíяþòñя ïðåîáðaçîâaíèя òèïa ïî îïðåäåëåííûì ïðaâèëaì (ñì. ñ. 38 è ïðèëî- æåíèå 3).
Îïèñaíèå ïåðåìåííîé, êðîìå òèïa è êëañña ïaìяòè, яâíî èëè ïî óìîë÷aíèþ ça- äaåò åå îáëañòü äåññòâèя. Êëaññ ïaìяòè è îáëañòü äåéñòâèя çaâèñяò íå òîëüêî îò ñîáñòâåííî îïèñaíèя, íî è îò ìåñòa åãî ðaçìåùåíèя â òåêñòå ïðîãðaììû.
Îáëañòü äåññòâèя èäåíòèôènaòîða — ýòî ÷añòü ïðîãðaììû, â êîòîðîé åãî ìîæ- íî èñïîëüçîâaòü äëя äîñòóïa ê ñâяçaííîé ñ íèì îáëañòè ïaìяòè. Â çaâèñèìîñòè îò îáëañòè äåéñòâèя ïåðåìåííaя ìîæåò áûòü ëîêaëüíîé èëè ãëîáaëüíîé.
Åñëè ïåðåìåííaя îïðåäåëåía âíóòðè áëîêa (íaïîìíþ, ÷òî áëîê îãðaíè÷åí ôèãóð- íûìè ñêîáêaìè), îía íaçûâaåòñя ëînaëüíîñ, îáëañòü åå äåéñòâèя — îò òî÷êè îïèña- íèя äî êîíöa áëîêa, âêëþ÷aя âñå âëîæåííûå áëîêè. Åñëè ïåðåìåííaя îïðåäåëåía âíå ëþáîãî áëîêa, îía íaçûâaåòñя ãëîáaëüíîñ è îáëañòüþ åå äåéñòâèя ñ÷èòaåòñя ôaéë, â êîòîðîì îía îïðåäåëåía, îò òî÷êè îïèñaíèя äî åãî êîíöa.
Êëaññ ïaìяòè îïðåäåëяåò âðåìя æèçíè è îáëañòü âèäèìîñòè ïðîãðaììíîãî îáúån- òa (â ÷añòíîñòè, ïåðåìåííîñ). Åñëè nëaññ ïaìяòè íå ónaçaí яâíûì îáðaçîì, îí îïðåäåëяåòñя nîìïèëяòîðîì èñõîäя èç nîíòånñòa îáúяâëåíèя.
Âðåìя æèçíè ìîæåò áûòü ïîñòîяííûì (â òå÷åíèå âûïîëíåíèя ïðîãðaììû) è âðå- ìåííûì (â òå÷åíèå âûïîëíåíèя áëîêa).
Îáëañòüþ âèäèìîñòè èäåíòèôènaòîða íaçûâaåòñя ÷añòü òåêñòa ïðîãðaììû, èç êîòîðîé äîïóñòèì îáû÷íûé äîñòóï ê ñâяçaííîé ñ èäåíòèôèêaòîðîì îáëañòüþ ïa- ìяòè. ×aùå âñåãî îáëañòü âèäèìîñòè ñîâïaäaåò ñ îáëañòüþ äåéñòâèя. Èñêëþ÷å- íèåì яâëяåòñя ñèòóaöèя, êîãäa âî âëîæåííîì áëîêå îïèñaía ïåðåìåííaя ñ òaêèì

æå èìåíåì. Â ýòîì ñëó÷aå âíåøíяя ïåðåìåííaя âî âëîæåííîì áëîêå íåâèäèìa, õîòя îí è âõîäèò â åå îáëañòü äåéñòâèя. Òåì íå ìåíåå ê ýòîé ïåðåìåííîé, åñëè îía ãëîáaëüíaя, ìîæíî îáðaòèòüñя, èñïîëüçóя îïåðaöèþ äîñòóïa ê îáëañòè âèäèìî- ñòè ::.


Äëя çaäaíèя nëañña ïaìяòè èñïîëüçóþòñя ñëåäóþùèå ñïåöèôèêaòîðû:
auto — aâòîìaòè÷åñnaя ïåðåìåííaя. Ïaìяòü ïîä íåå âûäåëяåòñя â ñòåêå è ïðè íå- îáõîäèìîñòè èíèöèaëèçèðóåòñя êaæäûé ðaç ïðè âûïîëíåíèè îïåðaòîða, ñîäåð- æaùåãî åå îïðåäåëåíèå. Îñâîáîæäåíèå ïaìяòè ïðîèñõîäèò ïðè âûõîäå èç áëîêa, â êîòîðîì îïèñaía ïåðåìåííaя. Âðåìя åå æèçíè — ñ ìîìåíòa îïèñaíèя äî êîíöa áëîêa. Äëя ãëîáaëüíûõ ïåðåìåííûõ ýòîò ñïåöèôèêaòîð íå èñïîëüçóåòñя, a äëя ëîêaëüíûõ îí ïðèíèìaåòñя ïî óìîë÷aíèþ, ïîýòîìó çaäaâaòü åãî яâíûì îáðaçîì áîëüøîãî ñìûñëa íå èìååò.
extern — îçía÷aåò, ÷òî ïåðåìåííaя îïðåäåëяåòñя â äðóãîì ìåñòå ïðîãðaììû (â äðóãîì ôaéëå èëè äaëüøå ïî òåêñòó). Èñïîëüçóåòñя äëя ñîçäaíèя ïåðåìåííûõ, äîñòóïíûõ âî âñåõ ìîäóëяõ ïðîãðaììû, â êîòîðûõ îíè îáúяâëåíû1. Ïîäðîáíåå îá óïîòðåáëåíèè âíåøíèõ ïåðåìåííûõ ðaññêaçûâaåòñя â ðaçäåëå «Âíåøíèå îáúяâ- ëåíèя», ñ. 98.
static — ñòaòè÷åñnaя ïåðåìåííaя. Âðåìя æèçíè — ïîñòîяííîå. Èíèöèaëèçèðó- åòñя îäèí ðaç ïðè ïåðâîì âûïîëíåíèè îïåðaòîða, ñîäåðæaùåãî îïðåäåëåíèå ïå- ðåìåííîé.  çaâèñèìîñòè îò ðañïîëîæåíèя îïåðaòîða îïèñaíèя ñòaòè÷åñêèå ïå- ðåìåííûå ìîãóò áûòü ãëîáaëüíûìè è ëîêaëüíûìè. Ãëîáaëüíûå ñòaòè÷åñêèå ïåðåìåííûå âèäíû òîëüêî â òîì ìîäóëå, â êîòîðîì îíè îïèñaíû.
register — aíaëîãè÷íî auto, íî ïaìяòü âûäåëяåòñя ïî âîçìîæíîñòè â ðåãèñòðaõ ïðîöåññîða. Åñëè òaêîé âîçìîæíîñòè ó êîìïèëяòîða íåò, ïåðåìåííûå îáðaáaòû- âaþòñя êaê auto.
int a; // 1 ãëîáaëüíaя ïåðåìåííaя a int main(){
int b; // 2 ëîêaëüíaя ïåðåìåííaя b
extern int x; // 3 ïåðåìåííaя õ îïðåäåëåía â äðóãîì ìåñòå static int c; // 4 ëîêaëüíaя ñòaòè÷åñêaя ïåðåìåííaя c
a = 1; // 5 ïðèñâaèâaíèå ãëîáaëüíîé ïåðåìåííîé
int a; // 6 ëîêaëüíaя ïåðåìåííaя a
a = 2; // 7 ïðèñâaèâaíèå ëîêaëüíîé ïåðåìåííîé
::a = 3; // 8 ïðèñâaèâaíèå ãëîáaëüíîé ïåðåìåííîé return 0;
}
intx= 4; //9 îïðåäåëåíèå è èíèöèaëèçaöèя x
 ýòîì ïðèìåðå ãëîáaëüíaя ïåðåìåííaя a îïðåäåëåía âíå âñåõ áëîêîâ. Ïaìяòü ïîä íåå âûäåëяåòñя â ñåãìåíòå äaííûõ â ía÷aëå ðaáîòû ïðîãðaììû, îáëañòüþ äåéñòâèя яâëяåòñя âñя ïðîãðaììa. Îáëañòü âèäèìîñòè — âñя ïðîãðaììa, êðîìå ñòðîê 6–8, òaê êaê â ïåðâîé èç íèõ îïðåäåëяåòñя ëîêaëüíaя ïåðåìåííaя ñ òåì æå èìåíåì, îáëañòü äåéñòâèя êîòîðîé ía÷èíaåòñя ñ òî÷êè åå îïèñaíèя è çaêaí÷èâa-


1 Åñëè ïåðåìåííaя â òîì æå îïåðaòîðå èíèöèaëèçèðóåòñя, ñïåöèôèêaòîð extern èãíîðèðó- åòñя.

åòñя ïðè âûõîäå èç áëîêa. Ïåðåìåííûå b è c — ëîêaëüíûå, îáëañòü èõ âèäèìî- ñòè — áëîê, íî âðåìя æèçíè ðaçëè÷íî: ïaìяòü ïîä b âûäåëяåòñя â ñòåêå ïðè âõîäå â áëîê è îñâîáîæäaåòñя ïðè âûõîäå èç íåãî, a ïåðåìåííaя c ðañïîëaãaåòñя â ñåã- ìåíòå äaííûõ è ñóùåñòâóåò âñå âðåìя, ïîêa ðaáîòaåò ïðîãðaììa.


Åñëè ïðè îïðåäåëåíèè ía÷aëüíîå çía÷åíèå ïåðåìåííûõ яâíûì îáðaçîì íå çaäa- åòñя, êîìïèëяòîð ïðèñâaèâaåò ãëîáaëüíûì è ñòaòè÷åñêèì ïåðåìåííûì íóëåâîå çía÷åíèå ñîîòâåòñòâóþùåãî òèïa. Àâòîìaòè÷åñêèå ïåðåìåííûå íå èíèöèaëèçè- ðóþòñя.
Èìя ïåðåìåííîé äîëæíî áûòü óíèêaëüíûì â ñâîåé îáëañòè äåéñòâèя (íaïðèìåð, â îäíîì áëîêå íå ìîæåò áûòü äâóõ ïåðåìåííûõ ñ îäèíaêîâûìè èìåíaìè). Áîëåå ïîäðîáíî îáëañòè äåéñòâèя ðaññìaòðèâaþòñя ía ñ. 97.


СОВЕТ
Íå æaëåéòå âðåìåíè ía ïðèäóìûâaíèå ïîäõîäяùèõ èìåí. Èìя äîëæíî îòðaæaòü ñìûñë õðaíèìîé âåëè÷èíû, áûòü ëåãêî ðañïîçíaâaåìûì è, æåëaòåëüíî, íå ñîäåðæaòü ñèìâîëîâ, êîòîðûå ìîæíî ïåðåïóòaòü äðóã ñ äðóãîì, íaïðèìåð, 1, l (ñòðî÷íaя L) èëè I (ïðîïèñíaя i). Äëя ðaçäåëåíèя ÷añòåé èìåíè ìîæíî èñïîëüçîâaòü çíaê ïîä÷åðêèâaíèя. Íå äaâaéòå ïåðå- ìåííûì èìåía, äåìîíñòðèðóþùèå çíaíèå èíîñòðaííîãî ñëýíãa — âåäü «êaê âû ëîäêó íaçî- âåòå, òaê îía è ïîïëûâåò». Êaê ïðaâèëî, ïåðåìåííûì ñ áîëüøîé îáëañòüþ âèäèìîñòè äaþòñя áîëåå äëèííûå èìåía (æåëaòåëüíî ñ ïðåôèêñîì òèïa), a äëя ïåðåìåííûõ, âñя æèçíü êîòîðûõ ïðîõîäèò ía ïðîòяæåíèè íåñêîëüêèõ ñòðîê èñõîäíîãî òåêñòa, õâaòèò è îä- íîé áóêâû ñ êîììåíòaðèåì ïðè îáúяâëåíèè.

Îïèñaíèå ïåðåìåííîé ìîæåò âûïîëíяòüñя â ôîðìå îáúяâëåíèя èëè îïðåäåëåíèя. Îáúяâëåíèå èíôîðìèðóåò êîìïèëяòîð î òèïå ïåðåìåííîé è êëaññå ïaìяòè, a îï- ðåäåëåíèå ñîäåðæèò, nðîìå ýòîãî, óêaçaíèå êîìïèëяòîðó âûäåëèòü ïaìяòü â ñî- îòâåòñòâèè ñ òèïîì ïåðåìåííîé. Â C++ áîëüøèíñòâî îáúяâëåíèé яâëяþòñя îä- íîâðåìåííî è îïðåäåëåíèяìè. Â ïðèâåäåííîì âûøå ïðèìåðå òîëüêî îïèñaíèå 3 яâëяåòñя îáúяâëåíèåì, íî íå îïðåäåëåíèåì.


Ïåðåìåííaя ìîæåò áûòü îáúяâëåía ìíîãîêðaòíî, íî îïðåäåëåía òîëüêî â îäíîì ìåñòå ïðîãðaììû, ïîñêîëüêó îáúяâëåíèå ïðîñòî îïèñûâaåò ñâîéñòâa ïåðåìåííîé, a îïðåäåëåíèå ñâяçûâaåò åå ñ êîíêðåòíîé îáëañòüþ ïaìяòè.



Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   14   15   16   17   18   19   20   21   ...   232




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish