С-де массивтері келесідей жарияланады
<түр атауы> <идентификатор> [өлшем];
Мысалы:
int I [30]; // int типті 30 өлшемді массивтің жариялануы
С-дің индекстер диапазоны Паскаль тілінен айырмашылығы: әрқашан 0-ден басталып, (n-1)-ге аяқталады, мұндағы n – Өлшем. Яғни, жоғарыда келтірілген мысалға қатысты индекстер диапазоны-0-ден 29-ға дейін.
Көпөлшемді массивтер сәйкесінше жарияланады:
< түр атауы > <идентификатор> [өлшем 1][ өлшем 2][ өлшем 3] …;
Мысалы:
int i [4][5][6];
В С++ определения переменных могут располагаться в программе где угодно - в любом месте, где допустим оператор (определение переменной считается оператором). В С было не так - определения переменных должны были следовать за открывающей фигурной скобкой блока и предшествовать первому исполняемому оператору функции. Это различие сразу бросается в глаза при переходе с С на С++ и это большое удобство. Можно определять переменные там, где возникает в них необходимость, а не в отведенном для этого месте.
С++ айнымалылардың анықтамалары бағдарламада кездейсоқ, мысалы оператор орналасқан кез-келген жерде орналасуы мүмкін (айнымалының анықтамасы оператор болып саналады). C-де басқаша болды - айнымалылардың анықтамалары блоктың ашылатын бұйра жақшасына сәйкес келуі және функцияның бірінші орындалатын операторынан бұрын болуы керек еді. Бұл айырмашылық C-ден C++-ке ауысқан кезде бірден көзге түседі және бұл үлкен ыңғайлылық. Айнымалыларды олар үшін бөлінген жерде емес, қажеттілік туындаған жерде анықтауға болады
Бағдарламаларда көбінесе атау беруді қажет ететін константалар (тұрақтылар) кездеседі. Бағдарламада константалы мәнді өзгерту мүмкін емес. Мұндай тұрақтылар const модификаторының көмегімен анықталады.
Мысалы
const int max = 512;
Егер max шамасы өзгерсе, бағдарламада тек бір жолды өзгерту керек. Мұндай константа (оны атаулы немесе символдық тұрақты деп атайды) анықталғаннан кейін өзгерту мүмкін болмағандықтан, оны міндетті түрде инициализациялау керек.
Мұндай жазба қате болады:
const int max; // инициализация жоқ
және бұл да:
max = 1024; // бұл константа!
Бұрын с тілінде const спецификаторы болмаған. Ол ANSI стандартының пайда болуымен пайда болды және сол жерден С++-қа көшті. Сонымен қатар, препроцессор #define директивасы арқылы мәтіндік алмастыруды анықтауға мүмкіндік береді.
Мысалы егер біз келесідей жазсақ:
#define MAX 512
(сол жақта-аты, оң жақта-мәтін, соңында нүктелі үтір жоқ), содан кейін бағдарлама мәтініндегі MAX атауының барлық пайда болуы компиляция алдында 512-ге ауыстырылады (және жалпы мәтін жолдың соңына дейін).
Мысалы,
if (i < MAX) { }
мынаған ауысады:
if (i < 512) { }
Мұндай ауыстыру кезінде ешқандай тексеру жүргізілмейді-тек мәтінді ауыстыру. Бұл тәсілдің кемшіліктері:
1) компилятор MAX атауын білмейді-ол 512-ге дейінгі процессормен ауыстырылған. Демек, мұндай атаумен объект жоқ және оның түрі жоқ. Бұдан шығатыны, егер бізде Max операторына қатысты қандай да бір қате болса, онда компилятордың хабарламалары бұл атқа қатысты болмайды және түсініксіз болуы мүмкін.
2) ешқандай түзеткіш MAX мәнін көруге немесе басқаша пайдалануға мүмкіндік бермейді.
Егер сіз const қолдансаңыз, бұндай әрекет орындалмайды - бағдарламадағы max нысаны (тек өзгермейтін) ғана қаралады. Оның түрі бар және оның мағынасын отладчиктен көруге болады.
C++-пен жұмыс істегенде, әрқашан тұрақтылар үшін const пайдаланыңыз.
Санау түрі көптеген символдық бүтін константаларды анықтайды. Бұл тұрақтылар санау элементтері деп аталады. Const спецификациясы бар эквивалентті сипаттамалардан айырмашылығы-әрбір санау элементімен байланысты жад мекенжайы жоқ. Санақ enum қызмет сөзімен және санау элементтерінің үтірмен бөлінген тізімімен сипатталады. Тізім жақшаға салынған. Әдепкі бойынша, бірінші элемент 0 мәніне, ал әрбір келесі элемент алдыңғы элементтің мәнінен бір үлкен мәнге тағайындалады
Достарыңызбен бөлісу: |