= çíà÷åíèå
èëè â êðóãëûõ ñêîáê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ìяòè.
Do'stlaringiz bilan baham: |