Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
78
Добавлен:
26.05.2014
Размер:
42.14 Кб
Скачать

вШСТО уФТБХУФТБР. чЧЕДЕОЙЕ Ч СЪЩЛ уЙ++, пРЕТБФПТЩ A.noneline { font-family: Arial, Serif; text-decoration: none; } FONT.arial { font-family: Arial, Serif; } TD.arial { font-family: Arial, Serif; } TH.arial { font-family: Arial, Serif; } PRE { font-family: Monospace; color: navy; } SAMP { font-family: Monospace; color: navy; } TT { font-family: Monospace; color: navy; } VAR { font-family: Monospace; color: navy; }

уЕТЧЕТ РПДДЕТЦЙЧБЕФУС

гЕОФТПН йОЖПТНБГЙПООЩИ фЕИОПМПЗЙК

(095) 932-9212, 932-9213, 939-0783

E-mail: info@citforum.ru уЕТЧЕТ йОЖПТНБГЙПООЩИ фЕИОПМПЗЙК УПДЕТЦЙФ НПТЕ(!) БОБМЙФЙЮЕУЛПК ЙОЖПТНБГЙЙ 9. пРЕТБФПТЩ пРЕТБФПТЩ ЧЩРПМОСАФУС РПУМЕДПЧБФЕМШОП ЧП ЧУЕИ УМХЮБСИ ЛТПНЕ ПУПВП ПЗПЧПТЕООЩИ. 9.1 пРЕТБФПТ ЧЩТБЦЕОЙЕ вПМШЫЙОУФЧП ПРЕТБФПТПЧ СЧМСЕФУС ПРЕТБФПТБНЙ ЧЩТБЦЕОЙЕ, ЛПФПТЩЕ ЙНЕАФ ЧЙД ЧЩТБЦЕОЙЕ ;

пВЩЮОП ПРЕТБФПТЩ ЧЩТБЦЕОЙЕ СЧМСАФУС РТЙУЧБЙЧБОЙСНЙ Й ЧЩЪПЧБНЙ ЖХОЛГЙК. 9.2 уПУФБЧОПК ПРЕТБФПТ, ЙМЙ ВМПЛ уПУФБЧОПК ПРЕТБФПТ (ОБЪЩЧБЕНЩК ФБЛЦЕ "ВМПЛ", ЮФП ЬЛЧЙЧБМЕОФОП) ДБЕФ ЧПЪНПЦОПУФШ ЙУРПМШЪПЧБФШ ОЕУЛПМШЛП ПРЕТБФПТПЧ Ч ФПН НЕУФЕ, ЗДЕ РТЕДРПМБЗБЕФУС ЙУРПМШЪПЧБОЙЕ ПДОПЗП: УПУФБЧОПК_ПРЕТБФПТ: { УРЙУПЛ_ПРЙУБОЙК opt УРЙУПЛ_ПРЕТБФПТПЧ opt } УРЙУПЛ_ПРЙУБОЙК: ПРЙУБОЙЕ ПРЙУБОЙЕ УРЙУПЛ_ПРЙУБОЙК УРЙУПЛ_ПРЕТБФПТПЧ: ПРЕТБФПТ ПРЕТБФПТ УРЙУПЛ_ПРЕТБФПТПЧ

еУМЙ ЛБЛПК-МЙВП ЙЪ ЙДЕОФЙЖЙЛБФПТПЧ Ч УРЙУЛЕ_ПРЙУБОЙК ВЩМ ТБОЕЕ ПРЙУБО, ФП ЧОЕЫОЕЕ ПРЙУБОЙЕ ЧЩФБМЛЙЧБЕФУС ОБ ЧТЕНС ЧЩРПМОЕОЙС ВМПЛБ, Й УОПЧБ ЧИПДЙФ Ч УЙМХ РП ЕЗП ПЛПОЮБОЙЙ. лБЦДБС ЙОЙГЙБМЙЪБГЙС auto ЙМЙ register РЕТЕНЕООЩИ РТПЙЪЧПДЙФУС ЧУСЛЙК ТБЪ РТЙ ЧИПДЕ Ч ЗПМПЧХ ВМПЛБ. ч ВМПЛ ДЕМБФШ РЕТЕДБЮХ; Ч ЬФПН УМХЮБЕ ЙОЙГЙБМЙЪБГЙЙ ОЕ ЧЩРПМОСАФУС. йОЙГЙБМЙЪБГЙЙ РЕТЕНЕООЩИ, ЙНЕАЭЙИ ЛМБУУ РБНСФЙ static (#4.2) ПУХЭЕУФЧМСАФУС ФПМШЛП ПДЙО ТБЪ Ч ОБЮБМЕ ЧЩРПМОЕОЙС РТПЗТБННЩ. 9.3 хУМПЧОЩК ПРЕТБФПТ еУФШ ДЧБ ЧЙДБ ХУМПЧОЩИ ПРЕТБФПТПЧ if ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ if ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ else ПРЕТБФПТ

ч ПВПЙИ УМХЮБСИ ЧЩЮЙУМСЕФУС ЧЩТБЦЕОЙЕ, Й ЕУМЙ ПОП ОЕ ОПМШ, ФП ЧЩРПМОСЕФУС РЕТЧЩК РПДПРЕТБФПТ. чП ЧФПТПН УМХЮБЕ ЧФПТПК РПДПРЕТБФПТ ЧЩРПМОСЕФУС, ЕУМЙ ЧЩТБЦЕОЙЕ ЕУФШ 0. лБЛ ПВЩЮОП, ОЕПДОПЪОБЮОПУФШ "else" ТБЪТЕЫБЕФУС РПУТЕДУФЧПН ФПЗП, ЮФП else УЧСЪЩЧБЕФУС У РПУМЕДОЙН ЧУФТЕЮОЩН if, ОЕ ЙНЕАЭЙН else. 9.4 пРЕТБФПТ while пРЕТБФПТ while ЙНЕЕФ ЧЙД while ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ

чЩРПМОЕОЙЕ РПДПРЕТБФПТБ РПЧФПТСЕФУС, РПЛБ ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС ПУФБЕФУС ОЕОХМЕЧЩН. рТПЧЕТЛБ ЧЩРПМОСЕФУС РЕТЕД ЛБЦДЩН ЧЩРПМОЕОЙЕН ПРЕТБФПТБ. 9.5 пРЕТБФПТ do пРЕТБФПТ do ЙНЕЕФ ЧЙД do ПРЕТБФПТ while (ЧЩТБЦЕОЙЕ);

чЩРПМОЕОЙЕ РПДПРЕТБФПТБ РПЧФПТСЕФУС ДП ФЕИ РПТ, РПЛБ ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС ОЕ УФБОЕФ ОХМЕН. рТПЧЕТЛБ ЧЩРПМОСЕФУС РПУМЕ ЛБЦДПЗП ЧЩРПМОЕОЙС ПРЕТБФПТБ. 9.6 пРЕТБФПТ for пРЕТБФПТ for ЙНЕЕФ ЧЙД for ( ЧЩТБЦЕОЙЕ_1 opt ; ЧЩТБЦЕОЙЕ_2 opt ; ЧЩТБЦЕОЙЕ_3 opt ) ПРЕТБФПТ

ьФПФ ПРЕТБФПТ ЬЛЧЙЧБМЕОФЕО УМЕДХАЭЕНХ: ЧЩТБЦЕОЙЕ_1; while (ЧЩТБЦЕОЙЕ_2) { ПРЕТБФПТ ЧЩТБЦЕОЙЕ_3; }

рЕТЧПЕ ЧЩТБЦЕОЙЕ ЪБДБЕФ ЙОЙГЙБМЙЪБГЙА ГЙЛМБ; ЧФПТПЕ ЧЩТБЦЕОЙЕ ЪБДБЕФ ПУХЭЕУФЧМСЕНХА РЕТЕД ЛБЦДПК ЙФЕТБГЙЕК РТПЧЕТЛХ, РП ЛПФПТПК РТПЙЪЧПДЙФУС ЧЩИПД ЙЪ ГЙЛМБ, ЕУМЙ ЧЩТБЦЕОЙЕ УФБОПЧЙФУС ОХМЕН; ФТЕФШЕ ЧЩТБЦЕОЙЕ ЮБУФП ЪБДБЕФ РТЙТБЭЕОЙЕ, ЧЩРПМОСЕНПЕ РПУМЕ ЛБЦДПК ЙФЕТБГЙЙ.

лБЦДПЕ ЙМЙ ЧУЕ ЧЩТБЦЕОЙС НПЗХФ ВЩФШ ПРХЭЕОЩ. пФУХФУФЧЙЕ ЧЩТБЦЕОЙС_2 ДЕМБЕФ РПДТБЪХНЕЧБЕНПЕ while-РТЕДМПЦЕОЙЕ ЬЛЧЙЧБМЕОФОЩН while(1); ПУФБМШОЩЕ ПРХЭЕООЩЕ ЧЩТБЦЕОЙС РТПУФП РТПРХУЛБАФУС Ч ПРЙУБООПН ЧЩЫЕ ТБУЫЙТЕОЙЙ. 9.7 пРЕТБФПТ switch пРЕТБФПТ switch ЧЩЪЩЧБЕФ РЕТЕДБЮХ ХРТБЧМЕОЙС ОБ ПДЙО ЙЪ ОЕУЛПМШЛЙИ ПРЕТБФПТПЧ Ч ЪБЧЙУЙНПУФЙ ПФ ЪОБЮЕОЙС ЧЩТБЦЕОЙС. пО ЙНЕЕФ ЧЙД switch ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ

чЩТБЦЕОЙЕ ДПМЦОП ВЩФШ ГЕМПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМС. мАВПК ПРЕТБФПТ ЧОХФТЙ ПРЕТБФПТБ НПЦЕФ ВЩФШ РПНЕЮЕО ПДОЙН ЙМЙ ВПМЕЕ РТЕЖЙЛУПН case УМЕДХАЭЙН ПВТБЪПН: case ЛПОУФБОФОПЕ_ЧЩТБЦЕОЙЕ :

ЗДЕ ЛПОУФБОФОПЕ ЧЩТБЦЕОЙЕ ДПМЦОП ЙНЕФШ ФПФ ЦЕ ФЙР ЮФП Й ЧЩТБЦЕОЙЕ- РЕТЕЛМАЮБФЕМШ; РТПЙЪЧПДСФУС ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС. ч ПДОПН ПРЕТБФПТЕ switch ОЙЛБЛЙЕ ДЧЕ ЛПОУФБОФЩ, РПНЕЮЕООЩЕ case, ОЕ НПЗХФ ЙНЕФШ ПДЙОБЛПЧПЕ ЪОБЮЕОЙЕ. лПОУФБОФОЩЕ ЧЩТБЦЕОЙС ФПЮОП ПРТЕДЕМСАФУС Ч #15.

нПЦЕФ ФБЛЦЕ ВЩФШ ОЕ ВПМЕЕ ЮЕН ПДЙО РТЕЖЙЛУ ПРЕТБФПТБ ЧЙДБ default :

лПЗДБ ЧЩРПМОЕО ПРЕТБФПТ switch, РТПЧЕДЕОП ЧЩЮЙУМЕОЙЕ ЕЗП ЧЩТБЦЕОЙС Й УТБЧОЕОЙЕ ЕЗП У ЛБЦДПК case ЛПОУФБОФПК. еУМЙ ПДОБ ЙЪ ЛПОУФБОФ ТБЧОБ ЪОБЮЕОЙА ЧЩТБЦЕОЙС, ФП ХРТБЧМЕОЙЕ РЕТЕДБЕФУС ОБ ЧЩТБЦЕОЙЕ, УМЕДХАЭЕЕ ЪБ РПДПЫЕДЫЙН РТЕЖЙЛУПН case. еУМЙ ОЙЛБЛБС case ЛПОУФБОФБ ОЕ УППФЧЕФУФЧХЕФ ЧЩТБЦЕОЙА, Й ЕУФШ РТЕЖЙЛУ default, ФП ХРТБЧМЕОЙЕ РЕТЕДБЕФУС ОБ ЧЩТБЦЕОЙЕ, ЛПФПТПНХ ПО РТЕДЫЕУФЧХЕФ. еУМЙ ОЕФ УППФЧЕФУФЧХАЭЙИ ЧБТЙБОФПЧ case Й default ПФУХФУФЧХЕФ, ФП ОЙЛБЛПК ЙЪ ПРЕТБФПТПЧ Ч ПРЕТБФПТЕ switch ОЕ ЧЩРПМОСЕФУС.

рТЕЖЙЛУЩ case Й default УБНЙ РП УЕВЕ ОЕ ЙЪНЕОСАФ РПФПЛ ХРТБЧМЕОЙС, ЛПФПТЩК РПУМЕ ЪБДЕТЦЛЙ ЙДЕФ ДБМШЫЕ, РЕТЕУЛБЛЙЧБС ЮЕТЕЪ ЬФЙ РТЕЖЙЛУЩ. дМС ЧЩИПДБ ЙЪ switch УН. break, #9.8.

пВЩЮОП ЪБЧЙУСЭЙК ПФ switch ПРЕТБФПТ СЧМСЕФУС УПУФБЧОЩН. ч ЗПМПЧЕ ЬФПЗП ПРЕТБФПТБ НПЗХФ УФПСФШ ПРЙУБОЙС, ОП ЙОЙГЙБМЙЪБГЙЙ БЧФПНБФЙЮЕУЛЙИ Й ТЕЗЙУФТПЧЩИ РЕТЕНЕООЩИ СЧМСАФУС ВЕЪТЕЪХМШФБФОЩНЙ. 9.8 пРЕТБФПТ break пРЕТБФПТ break ;

РТЕЛТБЭБЕФ ЧЩРПМОЕОЙЕ ВМЙЦБКЫЕЗП ПИЧБФЩЧБАЭЕЗП while, do, for ЙМЙ switch ПРЕТБФПТБ; ХРТБЧМЕОЙЕ РЕТЕДБЕФУС ОБ ПРЕТБФПТ, УМЕДХАЭЙК ЪБ ЪБЛПОЮЕООЩН. 9.9 пРЕТБФПТ continue пРЕТБФПТ continue ;

ЧЩЪЩЧБЕФ РЕТЕДБЮХ ХРТБЧМЕОЙС ОБ ХРТБЧМСАЭХА РТПДПМЦЕОЙЕН ГЙЛМБ ЮБУФШ ОБЙНЕОШЫЕЗП ПИЧБФЩЧБАЭЕЗП ПРЕТБФПТБ while, do ЙМЙ for; ФП ЕУФШ ОБ ЛПОЕГ РЕФМЙ ГЙЛМБ. фПЮОЕЕ, Ч ЛБЦДПН ЙЪ ПРЕТБФПТПЧ while (...)do for (...) { { { ... ... ... contin:;contin:; contin:; } } } while (...);

continue ЬЛЧЙЧБМЕОФОП goto contin. (ъБ contin: УМЕДХЕФ РХУФПК ПРЕТБФПТ, #9.13.) 9.10 пРЕТБФПТ return чПЪЧТБФ ЙЪ ЖХОЛГЙЙ Ч ЧЩЪЩЧБАЭХА РТПЗТБННХ ПУХЭЕУФЧМСЕФУС У РПНПЭША ПРЕТБФПТБ return, ЙНЕАЭЕЗП ПДЙО ЙЪ ДЧХИ ЧЙДПЧ: return ; return ЧЩТБЦЕОЙЕ ;

рЕТЧЩК НПЦЕФ ЙУРПМШЪПЧБФШУС ФПМШЛП Ч ЖХОЛГЙСИ, ОЕ ЧПЪЧТБЭБАЭЙИ ЪОБЮЕОЙС, Ф.Е. Ч ЖХОЛГЙСИ У ФЙРПН ЧПЪЧТБЭБЕНПЗП ЪОБЮЕОЙС void. чФПТБС ЖПТНБ НПЦЕФ ЙУРПМШЪПЧБФШУС ФПМШЛП Ч ЖХОЛГЙСИ, ОЕ ЧПЪЧТБЭБАЭЙИ ЪОБЮЕОЙЕ; ЧЩЪЩЧБАЭЕК ЖХОЛГЙА РТПЗТБННЕ ЧПЪЧТБЭБЕФУС ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС. еУМЙ ОЕПВИПДЙНП, ФП ЧЩТБЦЕОЙЕ РТЕПВТБЪХЕФУС, ЛБЛ ЬФП ДЕМБЕФУС РТЙ РТЙУЧБЙЧБОЙЙ, Л ФЙРХ ЖХОЛГЙЙ, Ч ЛПФПТПК ПОП ЧПЪОЙЛМП. пВИПД ЛПОГБ ЖХОЛГЙЙ ЬЛЧЙЧБМЕОФЕО ЧПЪЧТБФХ return ВЕЪ ЧПЪЧТБЭБЕНПЗП ЪОБЮЕОЙС. 9.11 пРЕТБФПТ goto нПЦОП ПУХЭЕУФЧМСФШ ВЕЪХУМПЧОХА РЕТЕДБЮХ ХРТБЧМЕОЙС У РПНПЭША ПРЕТБФПТБ goto ЙДЕОФЙЖЙЛБФПТ ;

йДЕОФЙЖЙЛБФПТ ДПМЦЕО ВЩФШ НЕФЛПК (#9.12), ТБУРПМПЦЕООПК Ч ФЕЛХЭЕК ЖХОЛГЙЙ. 9.12 рПНЕЮЕООЩЕ ПРЕТБФПТЩ рЕТЕД МАВЩН ПРЕТБФПТПН НПЦЕФ УФПСФШ РТЕЖЙЛУ НЕФЛБ, ЙНЕАЭЙК ЧЙД ЙДЕОФЙЖЙЛБФПТ :

ЛПФПТЩК УМХЦЙФ ДМС ПРЙУБОЙС ЙДЕОФЙЖЙЛБФПТБ ЛБЛ НЕФЛЙ. нЕФЛБ ЙУРПМШЪХЕФУС ФПМШЛП ЛБЛ ПВЯЕЛФ ДМС goto. пВМБУФША ЧЙДЙНПУФЙ НЕФЛЙ СЧМСЕФУС ФЕЛХЭБС ЖХОЛГЙС, ЙУЛМАЮБС МАВПК РПДВМПЛ, Ч ЛПФПТПН ВЩМ РЕТЕРЙУБО ФБЛПК ЦЕ ЙДЕОФЙЖЙЛБФПТ. уН. #4.1. 9.13 рХУФПК ПРЕТБФПТ рХУФПК ПРЕТБФПТ ЙНЕЕФ ЧЙД ;

рХУФПК ПРЕТБФПТ ЙУРПМШЪХЕФУС ДМС РПНЕЭЕОЙС НЕФЛЙ ОЕРПУТЕДУФЧЕООП РЕТЕД } УПУФБЧОПЗП ПРЕТБФПТБ ЙМЙ ФПЗП, ЮФПВЩ УОБВДЙФШ ФБЛЙЕ ПРЕТБФПТЩ, ЛБЛ while, РХУФЩН ФЕМПН. 9.14 пРЕТБФПТ delete пРЕТБФПТ delete ЙНЕЕФ ЧЙД delete ЧЩТБЦЕОЙЕ ;

тЕЪХМШФБФПН ЧЩТБЦЕОЙС ДПМЦЕО ВЩФШ ХЛБЪБФЕМШ. пВЯЕЛФ, ОБ ЛПФПТЩК ПО ХЛБЪЩЧБЕФ, ХОЙЮФПЦБЕФУС. ьФП ЪОБЮЙФ, ЮФП РПУМЕ ПРЕТБФПТБ ХОЙЮФПЦЕОЙС delete ОЕМШЪС ЗБТБОФЙТПЧБФШ, ЮФП ПВЯЕЛФ ЙНЕЕФ ПРТЕДЕМЕООПЕ ЪОБЮЕОЙЕ; УН. #17. ьЖЖЕЛФ ПФ РТЙНЕОЕОЙС delete Л ХЛБЪБФЕМА, ОЕ РПМХЮЕООПНХ ЙЪ ПРЕТБГЙЙ new (#7.1), ОЕ ПРТЕДЕМЕО. пДОБЛП, ХОЙЮФПЦЕОЙЕ ХЛБЪБФЕМС У ОХМЕЧЩН ЪОБЮЕОЙЕН ВЕЪПРБУОП. 9.15 пРЕТБФПТ asm пРЕТБФПТ asm ЙНЕЕФ ЧЙД asm ( УФТПЛБ) ;

уНЩУМ ПРЕТБФПТБ asm ОЕ ПРТЕДЕМЕО. пВЩЮОП ПО ЙУРПМШЪХЕФУС ДМС РЕТЕДБЮЙ ЙОЖПТНБГЙЙ ЮЕТЕЪ ЛПНРЙМСФПТ БУУЕНВМЕТХ. 10. чОЕЫОЙЕ пРТЕДЕМЕОЙС рТПЗТБННБ ОБ C++ УПУФПЙФ ЙЪ РПУМЕДПЧБФЕМШОПУФЙ ЧОЕЫОЙИ ПРТЕДЕМЕОЙК. чОЕЫОЕЕ ПРТЕДЕМЕОЙЕ ПРЙУЩЧБЕФ ЙДЕОФЙЖЙЛБФПТ ЛБЛ ЙНЕАЭЙК ЛМБУУ РБНСФЙ static Й ПРТЕДЕМСЕФ ЕЗП ФЙР. уРЕГЙЖЙЛБФПТ ФЙРБ (#8.2) НПЦЕФ ФБЛЦЕ ВЩФШ РХУФЩН, Й Ч ЬФПН УМХЮБЕ РТЙОЙНБЕФУС ФЙР int. пВМБУФШ ЧЙДЙНПУФЙ ЧОЕЫОЙИ ПРТЕДЕМЕОЙК РТПУФЙТБЕФУС ДП ЛПОГБ ЖБКМБ, Ч ЛПФПТПН ПОЙ ПРЙУБОЩ, ФБЛ ЦЕ, ЛБЛ ДЕКУФЧЙЕ ПРЙУБОЙК УПИТБОСЕФУС ДП ЛПОГБ ВМПЛБ. уЙОФБЛУЙУ ЧОЕЫОЙИ ПРТЕДЕМЕОЙК ФПФ ЦЕ, ЮФП Й Х ПРЙУБОЙК, ЪБ ЙУЛМАЮЕОЙЕН ФПЗП, ЮФП ФПМШЛП ОБ ЬФПН ХТПЧОЕ Й ЧОХФТЙ ПРЙУБОЙК ЛМБУУПЧ НПЦЕФ ВЩФШ ЪБДБО ЛПД (ФЕЛУФ РТПЗТБННЩ) ЖХОЛГЙЙ. 10.1 пРТЕДЕМЕОЙС ЖХОЛГЙК пРТЕДЕМЕОЙС ЖХОЛГЙК ЙНЕАФ ЧЙД ПРТЕДЕМЕОЙЕ_ЖХОЛГЙЙ: УРЕГЙЖЙЛБФПТЩ_ПРЙУБОЙС ПРЙУБФЕМШ_ЖХОЛГЙЙ opt ЙОЙГЙБМЙЪБФПТ_ВБЪПЧПЗП_ЛМБУУБ opt ФЕМП_ЖХОЛГЙЙ

еДЙОУФЧЕООЩНЙ cРЕГЙЖЙЛБФПТБНЙ ЛМБУУБ РБНСФЙ (sc-cРЕГЙЖЙЛБФПТБНЙ), ДПРХУФЙНЩНЙ УТЕДЙ УРЕГЙЖЙЛБФПТПЧ ПРЙУБОЙС, СЧМСАФУС extern, static, overload, inline Й virtual. пРЙУБФЕМШ ЖХОЛГЙЙ РПИПЦ ОБ ПРЙУБФЕМШ "ЖХОЛГЙЙ, ЧПЪЧТБЭБАЭЕК ...", ЪБ ЙУЛМАЮЕОЙЕН ФПЗП, ЮФП ПО ЧЛМАЮБЕФ Ч УЕВС ЙНЕОБ ЖПТНБМШОЩИ РБТБНЕФТПЧ ПРТЕДЕМСЕНПК ЖХОЛГЙЙ.

пРЙУБФЕМШ ЖХОЛГЙЙ ЙНЕЕФ ЧЙД ПРЙУБФЕМШ_ЖХОЛГЙЙ: ПРЙУБФЕМШ ( УРЙУПЛ_ПРЙУБОЙК_РБТБНЕФТПЧ )

жПТНБ УРЙУЛБ ПРЙУБОЙК РБТБНЕФТПЧ ПРТЕДЕМЕОБ Ч #8.4. еДЙОУФЧЕООЩК ЛМБУУ РБНСФЙ, ЛПФПТЩК НПЦЕФ ВЩФШ ЪБДБО, ЬФП ФПФ, РТЙ ЛПФПТПН УППФЧЕФУФЧХАЭЙК ЖБЛФЙЮЕУЛЙК РБТБНЕФТ ВХДЕФ УЛПРЙТПЧБО, ЕУМЙ ЬФП ЧПЪНПЦОП, Ч ТЕЗЙУФТ РТЙ ЧИПДЕ Ч ЖХОЛГЙА. еУМЙ Ч ЛБЮЕУФЧЕ ЙОЙГЙБМЙЪБФПТБ ДМС РБТБНЕФТБ ЪБДБОП ЛПОУФБОФОПЕ ЧЩТБЦЕОЙЕ, ФП ЬФП ЪОБЮЕОЙЕ ЙУРПМШЪХЕФУС ЛБЛ ЪОБЮЕОЙЕ РБТБНЕФТБ РП ХНПМЮБОЙА.

фЕМП ЖХОЛГЙЙ ЙНЕЕФ ЧЙД ФЕМП_ЖХОЛГЙЙ: УПУФБЧОПК_ПРЕТБФПТ

чПФ РТПУФПК РТЙНЕТ РПМОПЗП ПРТЕДЕМЕОЙС ЖХОЛГЙЙ: int max (int a,int b,int c) { int m = (a > b) ? a : b; return (m > c) ? m : c; }

ъДЕУШ int СЧМСЕФУС УРЕГЙЖЙЛБФПТПН ФЙРБ ; max (int a, int b, int c) СЧМСЕФУС ПРЙУБФЕМЕН ЖХОЛГЙЙ ; { ... } - ВМПЛ, ЪБДБАЭЙК ФЕЛУФ РТПЗТБННЩ (ЛПД) ПРЕТБФПТБ.

рПУЛПМШЛХ Ч ЛПОФЕЛУФЕ ЧЩТБЦЕОЙС ЙНС (ФПЮОЕЕ, ЙНС ЛБЛ ЖПТНБМШОЩК РБТБНЕФТ) УЮЙФБЕФУС ПЪОБЮБАЭЙН ХЛБЪБФЕМШ ОБ РЕТЧЩК ЬМЕНЕОФ НБУУЙЧБ, ФП ПРЙУБОЙС ЖПТНБМШОЩИ РБТБНЕФТПЧ, ПРЙУБООЩИ ЛБЛ "НБУУЙЧ ЙЪ ...", ЛПТТЕЛФЙТХАФУС ФБЛ, ЮФПВЩ ЮЙФБМПУШ "ХЛБЪБФЕМШ ОБ ...".

йОЙГЙБМЙЪБФПТ ВБЪПЧПЗП ЛМБУУБ ЙНЕЕФ ЧЙД ЙОЙГЙБМЙЪБФПТ_ВБЪПЧПЗП_ЛМБУУБ: : ( УРЙУПЛ_РБТБНЕФТПЧ opt )

пО ЙУРПМШЪХЕФУС ДМС ЪБДБОЙС РБТБНЕФТПЧ ЛПОУФТХЛФПТБ ВБЪПЧПЗП ЛМБУУБ Ч ЛПОУФТХЛФПТЕ РТПЙЪЧПДОПЗП ЛМБУУБ. оБРТЙНЕТ: struct base { base (int); ... }; struct derived : base { derived (int); ... }; derived.derived (int a) : (a+1) { ... } derived d (10);

лПОУФТХЛФПТ ВБЪПЧПЗП ЛМБУУБ ЧЩЪЩЧБЕФУС ДМС ПВЯЕЛФБ d У РБТБНЕФТПН 11. 10.2 пРТЕДЕМЕОЙС ЧОЕЫОЙИ ДБООЩИ пРТЕДЕМЕОЙС ЧОЕЫОЙИ ДБООЩИ ЙНЕАФ ЧЙД ПРТЕДЕМЕОЙЕ_ДБООЩИ: ПРЙУБОЙЕ

лМБУУ РБНСФЙ ФБЛЙИ ДБООЩИ УФБФЙЮЕУЛЙК.

еУМЙ ЕУФШ ВПМЕЕ ПДОПЗП ПРТЕДЕМЕОЙС ЧОЕЫОЙИ ДБООЩИ ПДОПЗП ЙНЕОЙ, ФП ПРТЕДЕМЕОЙС ДПМЦОЩ ФПЮОП УПЗМБУПЧЩЧБФШУС РП ФЙРХ Й ЛМБУУХ РБНСФЙ, Й ЙОЙГЙБМЙЪБФПТЩ (ЕУМЙ ПОЙ ЕУФШ), ДПМЦОЩ ЙНЕФШ ПДЙОБЛПЧПЕ ЪОБЮЕОЙЕ. 11. рТБЧЙМБ пВМБУФЙ чЙДЙНПУФЙ уН. #4.1. 12. лПНБОДОЩЕ уФТПЛЙ лПНРЙМСФПТБ лПНРЙМСФПТ СЪЩЛБ C++ УПДЕТЦЙФ РТЕРТПГЕУУПТ, УРПУПВОЩК ЧЩРПМОСФШ НБЛТПРПДУФБОПЧЛЙ, ХУМПЧОХА ЛПНРЙМСГЙА Й ЧЛМАЮЕОЙЕ ЙНЕОПЧБООЩИ ЖБКМПЧ. уФТПЛЙ, ОБЮЙОБАЭЙЕУС У #, ПФОПУСФУС Л РТЕРТПГЕУУПТХ. ьФЙ УФТПЛЙ ЙНЕАФ ОЕЪБЧЙУЙНЩК ПФ ПУФБМШОПЗП СЪЩЛБ УЙОФБЛУЙУ; ПОЙ НПЗХФ РПСЧМСФШУС Ч МАВПН НЕУФЕ ПЛБЪЩЧБФШ ЧМЙСОЙЕ, ЛПФПТПЕ ТБУРТПУФТБОСЕФУС (ОЕЪБЧЙУЙНП ПФ ПВМБУФЙ ЧЙДЙНПУФЙ) ДП ЛПОГБ ЙУИПДОПЗП ЖБКМБ РТПЗТБННЩ.

ъБНЕФШФЕ, ЮФП ПРТЕДЕМЕОЙС const Й inline ДБАФ БМШФЕТОБФЙЧЩ ДМС ВПМШЫЙОУФЧБ ЙУРПМШЪПЧБОЙК #define. 12.1 ъБНЕОБ ЙДЕОФЙЖЙЛБФПТПЧ лПНБОДОБС УФТПЛБ ЛПНРЙМСФПТБ ЙНЕЕФ ЧЙД #define ЙДЕОФ УФТПЛБ_УЙНЧПМПЧ

ЧЩЪЩЧБЕФ ЪБНЕОХ РТЕРТПГЕУУПТПН РПУМЕДХАЭЙИ ЧИПЦДЕОЙК ЙДЕОФЙЖЙЛБФПТБ, ЪБДБООПЗП УФТПЛПК УЙНЧПМПЧ. фПЮЛБ У ЪБРСФПК ЧОХФТЙ (ЙМЙ Ч ЛПОГЕ) УФТПЛЙ УЙНЧПМПЧ СЧМСЕФУС ЮБУФША ЬФПК УФТПЛЙ.

уФТПЛБ ЧЙДБ #define ЙДЕОФ( ЙДЕОФ , ..., ЙДЕОФ ) УФТПЛБ_УЙНЧПМПЧ

ЗДЕ ПФУХФУФЧХЕФ РТПВЕМ НЕЦДХ РЕТЧЩН ЙДЕОФЙЖЙЛБФПТПН Й (, СЧМСЕФУС НБЛТППРТЕДЕМЕОЙЕН У РБТБНЕФТБНЙ. рПУМЕДХАЭЙЕ ЧИПЦДЕОЙС РЕТЧПЗП ЙДЕОФЙЖЙЛБФПТБ У ЙДХЭЙНЙ ЪБ ОЙН (, РПУМЕДПЧБФЕМШОПУФША УЙНЧПМПЧ, ТБЪЗТБОЙЮЕООПК ЪБРСФЩНЙ, Й ), ЪБНЕОСАФУС УФТПЛПК УЙНЧПМПЧ, ЪБДБООПК Ч ПРТЕДЕМЕОЙЙ. лБЦДПЕ НЕУФПРПМПЦЕОЙЕ ЙДЕОФЙЖЙЛБФПТБ, ЪБНЕЮЕООПЗП Ч УРЙУЛЕ РБТБНЕФТПЧ ПРТЕДЕМЕОЙС, ЪБНЕОСЕФУС УППФЧЕФУФЧХАЭЕК УФТПЛПК ЙЪ ЧЩЪПЧБ. жБЛФЙЮЕУЛЙНЙ РБТБНЕФТБНЙ ЧЩЪПЧБ СЧМСАФУС УФТПЛЙ УЙНЧПМПЧ, ТБЪДЕМЕООЩЕ ЪБРСФЩНЙ; ПДОБЛП ЪБРСФЩЕ Ч УФТПЛЕ, ЪБЛМАЮЕООПК Ч ЛБЧЩЮЛЙ, ЙМЙ Ч ЛТХЗМЩИ УЛПВЛБИ ОЕ СЧМСАФУС ТБЪДЕМЙФЕМСНЙ РБТБНЕФТПЧ. юЙУМП ЖПТНБМШОЩИ Й ЖБЛФЙЮЕУЛЙИ РБТБНЕФТПЧ ДПМЦОП УПЧРБДБФШ. уФТПЛЙ Й УЙНЧПМШОЩЕ ЛПОУФБОФЩ Ч УЙНЧПМШОПК УФТПЛЕ УЛБОЙТХАФУС Ч РПЙУЛБИ ЖПТНБМШОЩИ РБТБНЕФТПЧ, ОП УФТПЛЙ Й УЙНЧПМШОЩЕ ЛПОУФБОФЩ Ч ПУФБМШОПК РТПЗТБННЕ ОЕ УЛБОЙТХАФУС Ч РПЙУЛБИ ПРТЕДЕМЕООЩИ (У РПНПЭША define) ЙДЕОФЙЖЙЛБФПТПЧ.

ч ПВПЙИ УМХЮБСИ УФТПЛБ ЪБНЕЭЕОЙС ЕЭЕ ТБЪ УЛБОЙТХЕФУС Ч РПЙУЛБИ ДТХЗЙИ ПРТЕДЕМЕООЩИ ЙДЕОФЙЖЙЛБФПТПЧ. ч ПВПЙИ УМХЮБСИ ДМЙООПЕ ПРТЕДЕМЕОЙЕ НПЦЕФ ВЩФШ РТПДПМЦЕОП ОБ ДТХЗПК УФТПЛЕ У РПНПЭША ЪБРЙУЙ \ Ч ЛПОГЕ РТПДПМЦБЕНПК УФТПЛЙ.

лПНБОДОБС УФТПЛБ ЧЙДБ #undef ЙДЕОФ

ЧМЕЮЕФ ПФНЕОХ РТЕРТПГЕУУПТОПЗП ПРТЕДЕМЕОЙС ЙДЕОФЙЖЙЛБФПТБ. 12.2 чЛМАЮЕОЙЕ ЖБКМПЧ лПНБОДОБС УФТПЛБ ЛПНРЙМСФПТБ ЧЙДБ #include "ЙНС_ЖБКМБ"

ЧЩЪЩЧБЕФ ЪБНЕОХ ЬФПК УФТПЛЙ РПМОЩН УПДЕТЦЙНЩН ЖБКМБ ЙНС_ЖБКМБ. уОБЮБМБ ЙНЕОПЧБООЩК ЖБКМ ЙЭЕФУС Ч ДЙТЕЛФПТЙЙ РЕТЧПОБЮБМШОПЗП ЙУИПДОПЗП ЖБКМБ, Б ЪБФЕН Ч УФБОДБТФОЩИ ЙМЙ ЪБДБООЩИ НЕУФБИ.

бМШФЕТОБФЙЧОЩК ЧБТЙБОФ, ЛПНБОДОБС УФТПЛБ ЧЙДБ #include

РТПЙЪЧПДЙФ РПЙУЛ ФПМШЛП Ч УФБОДБТФОПН ЙМЙ ЪБДБООПН НЕУФЕ, Й ОЕ ЙЭЕФ Ч ДЙТЕЛФПТЙЙ РЕТЧПОБЮБМШОПЗП ЙУИПДОПЗП ЖБКМБ. (фП, ЛБЛ ЬФЙ НЕУФБ ЪБДБАФУС, ОЕ СЧМСЕФУС ЮБУФША СЪЩЛБ.)

чЛМАЮЕОЙС У РПНПЭША #include НПЗХФ ВЩФШ ЧМПЦЕООЩНЙ. 12.3 хУМПЧОБС ЛПНРЙМСГЙС лПНБОДОБС УФТПЛБ ЛПНРЙМСФПТБ ЧЙДБ #if ЧЩТБЦЕОЙЕ

РТПЧЕТСЕФ, СЧМСЕФУС МЙ ТЕЪХМШФБФПН ЧЩЮЙУМЕОЙС ЧЩТБЦЕОЙС ОЕ-ОПМШ. чЩТБЦЕОЙЕ ДПМЦОП ВЩФШ ЛПОУФБОФОЩН ЧЩТБЦЕОЙЕН, ЛПФПТЩЕ ПВУХЦДБАФУС Ч #15; РТЙНЕОЙФЕМШОП Л ЙУРПМШЪПЧБОЙА ДБООПК ДЙТЕЛФЙЧЩ ЕУФШ ДПРПМОЙФЕМШОЩЕ ПЗТБОЙЮЕОЙС: ЛПОУФБОФОПЕ ЧЩТБЦЕОЙЕ ОЕ НПЦЕФ УПДЕТЦБФШ sizeof ЙМЙ РЕТЕЮЙУМЙНЩЕ ЛПОУФБОФЩ. лТПНЕ ПВЩЮОЩИ ПРЕТБГЙК C НПЦЕФ ЙУРПМШЪПЧБФШУС ХОБТОБС ПРЕТБГЙС defined. ч УМХЮБЕ РТЙНЕОЕОЙС Л ЙДЕОФЙЖЙЛБФПТХ ПОБ ДБЕФ ЪОБЮЕОЙЕ ОЕ-ОПМШ, ЕУМЙ ЬФПФ ЙДЕОФЙЖЙЛБФПТ ВЩМ ТБОЕЕ ПРТЕДЕМЕО У РПНПЭША #define Й РПУМЕ ЬФПЗП ОЕ ВЩМП ПФНЕОЩ ПРТЕДЕМЕОЙС У РПНПЭША #undef; ЙОБЮЕ ЕЕ ЪОБЮЕОЙЕ 0.

лПНБОДОБС УФТПЛБ ЧЙДБ #ifdef ЙДЕОФ

РТПЧЕТСЕФ, ПРТЕДЕМЕО МЙ ЙДЕОФЙЖЙЛБФПТ Ч РТЕРТПГЕУУПТЕ Ч ДБООЩК НПНЕОФ; ФП ЕУФШ, ВЩМ МЙ ПО ПВЯЕЛФПН ЛПНБОДОПК УФТПЛЙ #define.

лПНБОДОБС УФТПЛБ ЧЙДБ #ifndef ЙДЕОФ

РТПЧЕТСЕФ, СЧМСЕФУС МЙ ЙДЕОФЙЖЙЛБФПТ ОЕПРТЕДЕМЕООЩН Ч РТЕРТПГЕУУПТЕ Ч ДБООЩК НПНЕОФ.

рПУМЕ УФТПЛЙ ЛБЦДПЗП ЙЪ ФТЕИ ЧЙДПЧ НПЦЕФ УФПСФШ РТПЙЪЧПМШОПЕ ЛПМЙЮЕУФЧП УФТПЛ, ЧПЪНПЦОП, УПДЕТЦБЭЙИ ЛПНБОДОХА УФТПЛХ #else

Й ДБМЕЕ ДП ЛПНБОДОПК УФТПЛЙ #endif

еУМЙ РТПЧЕТЕООПЕ ХУМПЧЙЕ ЙУФЙООП, ФП ЧУЕ УФТПЛЙ НЕЦДХ #else Й #endif ЙЗОПТЙТХАФУС. еУМЙ РТПЧЕТЕООПЕ ХУМПЧЙЕ МПЦОП, ФП ЧУЕ УФТПЛЙ НЕЦДХ РТПЧЕТЛПК Й #else ЙМЙ, Ч УМХЮБЕ ПФУХФУФЧЙС #else, #endif, ЙЗОПТЙТХАФУС.

ьФЙ ЛПОУФТХЛГЙЙ НПЗХФ ВЩФШ ЧМПЦЕООЩНЙ. 12.4 хРТБЧМЕОЙЕ УФТПЛПК дМС РПНПЭЙ ДТХЗЙН РТЕРТПГЕУУПТБН, ЗЕОЕТЙТХАЭЙН РТПЗТБННЩ ОБ C, УФТПЛБ ЧЙДБ #line ЛПОУФБОФБ "ЙНС_ЖБКМБ"

ЪБУФБЧМСЕФ ЛПНРЙМСФПТ УЮЙФБФШ, ОБРТЙНЕТ, Ч ГЕМСИ ДЙБЗОПУФЙЛЙ ПЫЙВПЛ, ЮФП ЛПОУФБОФБ ЪБДБЕФ ОПНЕТ УМЕДХАЭЕК УФТПЛЙ ЙУИПДОПЗП ЖБКМБ, Й ФЕЛХЭЙК ЧИПДОПК ЖБКМ ЙНЕОХЕФУС ЙДЕОФЙЖЙЛБФПТПН. еУМЙ ЙДЕОФЙЖЙЛБФПТ ПФУХФУФЧХЕФ, ФП ЪБРПНОЕООПЕ ЙНС ЖБКМБ ОЕ ЙЪНЕОСЕФУС. 13. оЕСЧОЩЕ пРЙУБОЙС уН. #8.1. 14. пВЪПТ фЙРПЧ ч ЬФПН ТБЪДЕМЕ ЛТБФЛП УПВТБОП ПРЙУБОЙЕ ДЕКУФЧЙК, ЛПФПТЩЕ НПЗХФ УПЧЕТЫБФШУС ОБД ПВЯЕЛФБНЙ ТБЪМЙЮОЩИ ФЙРПЧ. 14.1 лМБУУЩ лМБУУПЧЩЕ ПВЯЕЛФЩ НПЗХФ РТЙУЧБЙЧБФШУС, РЕТЕДБЧБФШУС ЖХОЛГЙСН ЛБЛ РБТБНЕФТЩ Й ЧПЪЧТБЭБФШУС ЖХОЛГЙСНЙ. дТХЗЙЕ ЧПЪНПЦОЩЕ ПРЕТБГЙЙ, ЛБЛ, ОБРТЙНЕТ, РТПЧЕТЛБ ТБЧЕОУФЧБ, НПЗХФ ВЩФШ ПРТЕДЕМЕОЩ РПМШЪПЧБФЕМЕН; УН. #8.5.10. 14.2 жХОЛГЙЙ еУФШ ФПМШЛП ДЧЕ ЧЕЭЙ, ЛПФПТЩЕ НПЦОП РТПДЕМЩЧБФШ У ЖХОЛГЙЕК: ЧЩЪЩЧБФШ ЕЕ Й ВТБФШ ЕЕ БДТЕУ. еУМЙ Ч ЧЩТБЦЕОЙЙ ЙНС ЖХОЛГЙЙ ЧПЪОЙЛБЕФ ОЕ Ч РПМПЦЕОЙЙ ЙНЕОЙ ЖХОЛГЙЙ Ч ЧЩЪПЧЕ, ФП ЗЕОЕТЙТХЕФУС ХЛБЪБФЕМШ ОБ ЖХОЛГЙА. фБЛ, ДМС РЕТЕДБЮЙ ПДОПК ЖХОЛГЙЙ ДТХЗПК НПЦОП ОБРЙУБФШ typedef int (*PF) (); extern g (PF); extern f (); ... g (f);

фПЗДБ ПРТЕДЕМЕОЙЕ g НПЦЕФ ЙНЕФШ УМЕДХАЭЙК ЧЙД: g (PF funcp) { ... (*funcp) (); ... }

ъБНЕФШФЕ, ЮФП f ДПМЦОБ ВЩФШ ПРЙУБОБ СЧОП Ч ЧЩЪЩЧБАЭЕК РТПЗТБННЕ, РПУЛПМШЛХ ЕЕ РПСЧМЕОЙЕ Ч g(f) ОЕ УПРТПЧПЦДБМПУШ (. 14.3 нБУУЙЧЩ, ХЛБЪБФЕМЙ Й ЙОДЕЛУЙТПЧБОЙЕ чУСЛЙК ТБЪ, ЛПЗДБ Ч ЧЩТБЦЕОЙЙ РПСЧМСЕФУС ЙДЕОФЙЖЙЛБФПТ ФЙРБ НБУУЙЧБ, ПО РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ ОБ РЕТЧЩК ЮМЕО НБУУЙЧБ. йЪ-ЪБ РТЕПВТБЪПЧБОЙК НБУУЙЧЩ ОЕ СЧМСАФУС БДТЕУБНЙ. рП ПРТЕДЕМЕОЙА ПРЕТБГЙС ЙОДЕЛУЙТПЧБОЙС [] ЙОФЕТРТЕФЙТХЕФУС ФБЛЙН ПВТБЪПН, ЮФП E1[E2] ЙДЕОФЙЮОП *((E1)+(E2)). ч УЙМХ РТБЧЙМ РТЕПВТБЪПЧБОЙС, РТЙНЕОСЕНЩИ Л +, ЕУМЙ E1 НБУУЙЧ Й E2 ГЕМПЕ, ФП E1[E2] ПФОПУЙФУС Л E2-ПНХ ЮМЕОХ E1. рПЬФПНХ, ОЕУНПФТС ОБ ФБЛПЕ РТПСЧМЕОЙЕ БУЙННЕФТЙЙ, ЙОДЕЛУЙТПЧБОЙЕ СЧМСЕФУС ЛПННХФБФЙЧОПК ПРЕТБГЙЕК.

ьФП РТБЧЙМП УППВТБЪОЩН ПВТБЪПН РТЙНЕОСЕФУС Ч УМХЮБЕ НОПЗПНЕТОПЗП НБУУЙЧБ. еУМЙ E СЧМСЕФУС n-НЕТОЩН НБУУЙЧПН ТБОЗБ i*j*...*k, ФП ЧПЪОЙЛБАЭЕЕ Ч ЧЩТБЦЕОЙЙ E РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ ОБ (n-1)-НЕТОЩК НБУУЙЧ ТБОЗБ j*...*k. еУМЙ Л ЬФПНХ ХЛБЪБФЕМА, СЧОП ЙМЙ ОЕСЧОП, ЛБЛ ТЕЪХМШФБФ ЙОДЕЛУЙТПЧБОЙС, РТЙНЕОСЕФУС ПРЕТБГЙС *, ЕЕ ТЕЪХМШФБФПН СЧМСЕФУС (n-1)-НЕТОЩК НБУУЙЧ, ОБ ЛПФПТЩК ХЛБЪЩЧБМПУШ, ЛПФПТЩК УБН ФХФ ЦЕ РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ.

тБУУНПФТЙН, ОБРТЙНЕТ, int x[3][5];

ъДЕУШ x - НБУУЙЧ ГЕМЩИ ТБЪНЕТПН 3*5. лПЗДБ x ЧПЪОЙЛБЕФ Ч ЧЩТБЦЕОЙЙ, ПО РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ ОБ (РЕТЧЩК ЙЪ ФТЕИ) НБУУЙЧ ЙЪ 5 ГЕМЩИ. ч ЧЩТБЦЕОЙЙ x[i], ЛПФПТПЕ ЬЛЧЙЧБМЕОФОП *(x+1), x УОБЮБМБ РТЕПВТБЪХЕФУС, ЛБЛ ПРЙУБОП, Ч ХЛБЪБФЕМШ, ЪБФЕН 1 РТЕПВТБЪХЕФУС Л ФЙРХ x, ЮФП ЧЛМАЮБЕФ Ч УЕВС ХНОПЦЕОЙЕ 1 ОБ ДМЙОХ ПВЯЕЛФБ, ОБ ЛПФПТЩК ХЛБЪЩЧБЕФ ХЛБЪБФЕМШ, Б ЙНЕООП ПВЯЕЛФ ЙЪ 5 ГЕМЩИ. тЕЪХМШФБФЩ УЛМБДЩЧБАФУС, Й ЙУРПМШЪХЕФУС ЛПУЧЕООБС БДТЕУБГЙС ДМС РПМХЮЕОЙС НБУУЙЧБ (ЙЪ 5 ГЕМЩИ), ЛПФПТЩК Ч УЧПА ПЮЕТЕДШ РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ ОБ РЕТЧПЕ ЙЪ ГЕМЩИ. еУМЙ ЕУФШ ЕЭЕ ПДЙО ЙОДЕЛУ, УОПЧБ ЙУРПМШЪХЕФУС ФПФ ЦЕ РБТБНЕФТ; ОБ ЬФПФ ТБЪ ТЕЪХМШФБФ СЧМСЕФУС ГЕМЩН.

йНЕООП ЙЪ ЧУЕЗП ЬФПЗП РТПЙУФЕЛБЕФ ФП, ЮФП НБУУЙЧЩ Ч C ИТБОСФУС РП УФТПЛБН (ВЩУФТЕЕ ЧУЕЗП ЙЪНЕОСЕФУС РПУМЕДОЙК ЙОДЕЛУ), Й ЮФП Ч ПРЙУБОЙЙ РЕТЧЩК ЙОДЕЛУ РПНПЗБЕФ ПРТЕДЕМЙФШ ПВЯЕН РБНСФЙ, РПЗМПЭБЕНЩК НБУУЙЧПН, ОП ОЕ ЙЗТБЕФ ОЙЛБЛПК ДТХЗПК ТПМЙ Ч ЧЩЮЙУМЕОЙСИ ЙОДЕЛУБ. 14.4 сЧОЩЕ РТЕПВТБЪПЧБОЙС ХЛБЪБФЕМЕК пРТЕДЕМЕООЩЕ РТЕПВТБЪПЧБОЙС, ЧЛМАЮБАЭЙЕ НБУУЙЧЩ, ЧЩРПМОСАФУС, ОП ЙНЕАФ ЪБЧЙУСЭЙЕ ПФ ТЕБМЙЪБГЙЙ БУРЕЛФЩ. чУЕ ПОЙ ЪБДБАФУС У РПНПЭША СЧОПК ПРЕТБГЙЙ РТЕПВТБЪПЧБОЙС ФЙРПЧ, УН. ##7.2 Й 8.7.

хЛБЪБФЕМШ НПЦЕФ ВЩФШ РТЕПВТБЪПЧБО Л МАВПНХ ЙЪ ГЕМЩИ ФЙРПЧ, ДПУФБФПЮОП ВПМШЫЙИ ДМС ЕЗП ИТБОЕОЙС. фП, ЛБЛПК ЙЪ int Й long ФТЕВХЕФУС, СЧМСЕФУС НБЫЙООП ЪБЧЙУЙНЩН. рТЕПВТБЪХАЭБС ЖХОЛГЙС ФБЛЦЕ СЧМСЕФУС НБЫЙООП ЪБЧЙУЙНПК, ОП РТЕДРПМБЗБЕФУС, ЮФП ПОБ ОЕ УПДЕТЦЙФ УАТРТЙЪПЧ ДМС ФПЗП, ЛФП ЪОБЕФ УФТХЛФХТХ БДТЕУБГЙЙ Ч НБЫЙОЕ. рПДТПВОПУФЙ ДМС ОЕЛПФПТЩИ ЛПОЛТЕФОЩИ НБЫЙО ВЩМЙ ДБОЩ Ч #2.6.

пВЯЕЛФ ГЕМПЗП ФЙРБ НПЦЕФ ВЩФШ СЧОП РТЕПВТБЪПЧБО Ч ХЛБЪБФЕМШ. рТЕПВТБЪХАЭБС ЖХОЛГЙС ЧУЕЗДБ РТЕЧТБЭБЕФ ГЕМПЕ, РПМХЮЕООПЕ ЙЪ ХЛБЪБФЕМС, ПВТБФОП Ч ФПФ ЦЕ ХЛБЪБФЕМШ, ОП Ч ПУФБМШОЩИ УМХЮБСИ СЧМСЕФУС НБЫЙООП ЪБЧЙУЙНПК.

хЛБЪБФЕМШ ОБ ПДЙО ФЙР НПЦЕФ ВЩФШ РТЕПВТБЪПЧБО Ч ХЛБЪБФЕМШ ОБ ДТХЗПК ФЙР. йУРПМШЪПЧБОЙЕ ТЕЪХМШФЙТХАЭЕЗП ХЛБЪБФЕМС НПЦЕФ ЧЩЪЩЧБФШ ПУПВЩЕ УЙФХБГЙЙ, ЕУМЙ ЙУИПДОЩК ХЛБЪБФЕМШ ОЕ ХЛБЪЩЧБЕФ ОБ ПВЯЕЛФ, УППФЧЕФУФЧХАЭЙН ПВТБЪПН ЧЩТБЧОЕООЩК Ч РБНСФЙ. зБТБОФЙТХЕФУС, ЮФП ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ДБООПЗП ТБЪНЕТБ НПЦЕФ ВЩФШ РТЕПВТБЪПЧБО Ч ХЛБЪБФЕМШ ОБ ПВЯЕЛФ НЕОШЫЕЗП ТБЪНЕТБ Й ПВТБФОП ВЕЪ ЙЪНЕОЕОЙК.

оБРТЙНЕТ, РТПЗТБННБ, ЧЩДЕМСАЭБС РБНСФШ, НПЦЕФ РПМХЮБФШ ТБЪНЕТ (Ч ВБКФБИ) ТБЪНЕЭБЕНПЗП ПВЯЕЛФБ Й ЧПЪЧТБЭБФШ ХЛБЪБФЕМШ ОБ char; ЬФП НПЦОП ЙУРПМШЪПЧБФШ УМЕДХАЭЙН ПВТБЪПН. extern void* alloc (); double* dp; dp = (double*) alloc (sizeof (double)); *dp= 22.0 / 7.0;

alloc ДПМЦОБ ПВЕУРЕЮЙЧБФШ (НБЫЙООП ЪБЧЙУЙНЩН ПВТБЪПН) ФП, ЮФП ЧПЪЧТБЭБЕНПЕ ЕА ЪОБЮЕОЙЕ РПДИПДЙФ ДМС РТЕПВТБЪПЧБОЙС Ч ХЛБЪБФЕМШ ОБ double; Ч ЬФПН УМХЮБЕ ЙУРПМШЪПЧБОЙЕ ЖХОЛГЙЙ НПВЙМШОП. тБЪМЙЮОЩЕ НБЫЙОЩ ТБЪМЙЮБАФУС РП ЮЙУМХ ВЙФ Ч ХЛБЪБФЕМСИ Й ФТЕВПЧБОЙСН Л ЧЩТБЧОЙЧБОЙА ПВЯЕЛФПЧ. уПУФБЧОЩЕ ПВЯЕЛФЩ ЧЩТБЧОЙЧБАФУС РП УБНПК УФТПЗПК ЗТБОЙГЕ, ФТЕВХЕНПК ЛБЛЙН-МЙВП ЙЪ ЕЗП УПУФБЧМСАЭЙИ. 15. лПОУФБОФОЩЕ чЩТБЦЕОЙС ч ОЕУЛПМШЛЙИ НЕУФБИ C++ ФТЕВХЕФ ЧЩТБЦЕОЙС, ЧЩЮЙУМЕОЙЕ ЛПФПТЩИ ДБЕФ ЛПОУФБОФХ: Ч ЛБЮЕУФЧЕ ЗТБОЙГЩ НБУУЙЧБ (#8.3), Ч case ЧЩТБЦЕОЙСИ (#9.7), Ч ЛБЮЕУФЧЕ ЪОБЮЕОЙК РБТБНЕФТПЧ ЖХОЛГЙЙ, РТЙУЧБЙЧБЕНЩИ РП ХНПМЮБОЙА, (#8.3), Й Ч ЙОЙГЙБМЙЪБФПТБИ (#8.6). ч РЕТЧПН УМХЮБЕ ЧЩТБЦЕОЙЕ НПЦЕФ ЧЛМАЮБФШ ФПМШЛП ГЕМЩЕ ЛПОУФБОФЩ, УЙНЧПМШОЩЕ ЛПОУФБОФЩ, ЛПОУФБОФЩ, ПРЙУБООЩЕ ЛБЛ ЙНЕОБ, Й sizeof ЧЩТБЦЕОЙС, ЧПЪНПЦОП, УЧСЪБООЩЕ ВЙОБТОЩНЙ ПРЕТБГЙСНЙ + - * / % & | ^ > == != < > = && ||

ЙМЙ ХОБТОЩНЙ ПРЕТБГЙСНЙ - ~ !

ЙМЙ ФЕТОБТОЩНЙ ПРЕТБГЙСНЙ ? :

уЛПВЛЙ НПЗХФ ЙУРПМШЪПЧБФШУС ДМС ЗТХРРЙТПЧБОЙС, ОП ОЕ ДМС ЧЩЪПЧБ ЖХОЛГЙК.

вПМШЫБС ЫЙТПФБ ДПРХУФЙНБ ДМС ПУФБМШОЩИ ФТЕИ УМХЮБЕЧ ЙУРПМШЪПЧБОЙС; РПНЙНП ЛПОУФБОФОЩИ ЧЩТБЦЕОЙК, ПВУХЦДБЧЫЙИУС ЧЩЫЕ, ДПРХУЛБАФУС ЛПОУФБОФЩ У РМБЧБАЭЕК ФПЮЛПК, Й НПЦОП ФБЛЦЕ РТЙНЕОСФШ ХОБТОХА ПРЕТБГЙА & Л ЧОЕЫОЙН ЙМЙ УФБФЙЮЕУЛЙН ПВЯЕЛФБН, ЙМЙ Л ЧОЕЫОЙН ЙМЙ УФБФЙЮЕУЛЙН НБУУЙЧБН, ЙОДЕЛУЙТПЧБООЩН ЛПОУФБОФОЩН ЧЩТБЦЕОЙЕН. хОБТОБС ПРЕТБГЙС & НПЦЕФ ФБЛЦЕ ВЩФШ РТЙНЕОЕОБ ОЕСЧОП У РПНПЭША ХРПФТЕВМЕОЙС ОЕЙОДЕЛУЙТПЧБООЩИ НБУУЙЧПЧ Й ЖХОЛГЙК. пУОПЧОПЕ РТБЧЙМП УПУФПЙФ Ч ФПН, ЮФП ЙОЙГЙБМЙЪБФПТЩ ДПМЦОЩ РТЙ ЧЩЮЙУМЕОЙЙ ДБЧБФШ ЛПОУФБОФХ ЙМЙ БДТЕУ ТБОЕЕ ПРЙУБООПЗП ЧОЕЫОЕЗП ЙМЙ УФБФЙЮЕУЛПЗП ПВЯЕЛФБ РМАУ ЙМЙ НЙОХУ ЛПОУФБОФБ. id id: ЙДЕОФЙЖЙЛБФПТ typedef-ЙНС :: ЙДЕОФЙЖЙЛБФПТ УРЙУПЛ_ЧЩТБЦЕОЙК: ЧЩТБЦЕОЙЕ УРЙУПЛ_ЧЩТБЦЕОЙК, ЧЩТБЦЕОЙЕ ПРЕТБГЙС: ХОБТОБС_ПРЕТБГЙС ВЙОБТОБС_ПРЕТБГЙС УРЕГЙБМШОБС_ПРЕТБГЙС вЙОБТОЩЕ ПРЕТБГЙЙ ЙНЕАФ РТЙПТЙФЕФ, ХВЩЧБАЭЙК Ч ХЛБЪБООПН РПТСДЛЕ: ВЙОБТОБС_ПРЕТБГЙС: * / % + - > < > == != & ^ | && || = += -= *= /= %= ^= &= |= >>=

Соседние файлы в папке Введение в язык С++ - Б. Страустрап