Доимиҳо дар С++

Ба дигарон равон намоед

Доимиҳо.Доимӣ гуфта, лексемаеро меноманд, ки тасвири аниқи қимати ададӣ, сатрӣ ё рамзиро ифода мекунад. Доимиҳо ба панҷ гурӯҳ ҷудо мешаванд: бутун, ҳақиқӣ, номбаршаванда, рамзӣ ва сатрӣ. Доимиҳои номбаршаванда мувофиқи стандарти забон ба гурӯҳи доимиҳои бутун дохил мешаванд.

Компилятор ҳамчун лексема доимиро ҷудо намуда, ба ин ё он гурӯҳ дохил менамояд ва дар дохили гурӯҳ аз намуди зоҳириаш ба навъи муайян ҷудо мекунад.

Доимиҳои бутун метавонанд адаҳои даҳӣ, ҳаштӣ ё шонздаҳӣ бошанд. Доимии бутуни даҳӣ ҳамчун пайдарпаии рақамҳои бо сифр сарнашуда (ба ғайр аз худи сифр) муайян карда мешаванд (масалан, 16, 484216, 0, 4). Доимиҳои бутуни ҳаштӣ доимо бо сифр сар мешаванд (масалан, 016=14). Пайдарпаии рақамҳои шонздаҳӣ, ки дар пешашон 0x навишта шудааст, доимии шонздаҳӣ ҳисобида мешавад (масалан, 0x16=22, 0xF=15).

Доимиҳои ҳақиқӣ ин адаҳои қисми касрӣ дошта мебошанд. Барои фарқ намудани доимиҳои ҳақиқӣ аз бутун намуди зоҳирии онҳо бояд фарқ кунад. Доимии ҳақиқӣ метавонад аз шаш қисми зерин иборат бошад: қисми бутун, нуқтаи касрӣ, қисми касрӣ, аломати экспонанта (e ё E), нишондиҳандаи дараҷаи даҳӣ, суффикси F (ё f) ё ин ки L (ё l). Дар навишти доимии ҳақиқӣ қисми бутун ё касрӣ метавонанд иштирок накунанд (лекин, зарурати иштироки якеи аз онҳо ҳатмист). Инчунин, нуқтаи касрӣ ва аломати экпонента (на якбора) ва суффиксҳо низ метавонанд иштирок накунанд. Мисолҳои доимиҳои ҳақиқиро меорем:

66. .0 .12 3.14159F 1.12e-2 2E+6L 2.71

Доимиҳои рамзӣ ин як ё ду рамзи дар дохили апостроф (’) навишташуда мебошад. Мисолҳои доимиҳои рамзии аз як рамз иборат: ’z’, ’*’, ’\n’, ’\0’; аз ду рамз иборат: ’db’, ’\n\t’, ’\x07\x07’. Дар мисолҳои овардашуда пайдарпаиҳои бо рамзи ’\’ оғозшаванда ҷолиби диққат ҳастанд. Рамзи хати каҷи чаппа ’\’ якум: ҳангоми навиштани коди рамзҳои нонамоён; ва дуюм: барои навишти рамзи апостроф (’), хати каҷи чаппа (\), аломати савол (?) ва нохунак («) истифода бурда мешавад. Пайдарпаии рамзҳое, ки бо ’\’ оғоз мешаванд, эскейп-пайдарпаӣ меноманд. Дар ҷадвали поёнӣ қиматҳои имконпазири онҳо оварда шудаанд:

\a 0x07bel (audible bell) Сигнали овозӣ
\b 0x08bs (backspace) Як қадам пас гаштан (тоза кардан)
\f 0x0Cff (form feed) Гузариш ба саҳифаи нав
\n 0x0Alf (line feed) Гузариш ба сатри нав
\r 0x0Dcr (carriage return) Баргардонидани навард
\t 0x09ht (horizontal tab) Табулятсияи горизонталӣ
\v 0x0Bvt (vertical tab) Табулятсияи вертикалӣ
\\ 0x5C\ (backslash) Хати каҷи чаппа
\’ 0x27’ (single quote) Апостроф
 0x22» (double quote) Нохунак
\? 0x3F? (question mark) Аломати савол
\000 000(octal number) Коди ҳаштии рамз
\xhh 0xhh(hex number) Коди шонздаҳии рамз

Доимиҳои сатрӣ ё сатр гуфта пайдарпаии рамзҳои ба дохили нохунак (на балки апостроф) гирифташударо меноманд.

Мисол:

«Ин сатр аст, ҳамчунин доимии сатрӣ номида мешавад» Дар байни рамзҳои сатр эскейп-пайдарпаиҳо низ метавонанд иштирок кунанд. Дар ин ҳолат низ онҳо бо рамзи хати қаҷи чаппа \ оғоз мешаванд:

«Ин сатр ё \»доимии сатрӣ\» \n номида мешавад»

Сатрҳое, ки дар барнома паиҳам навишта шудаанд, ҳангоми компилятсия пайваст карда мешаванд. Яъне, дар матни барнома пайдарпаии сатрҳои

«Ин сатр аст, ҳамчунин «

«доимии сатрӣ номида мешавад» 

ва сатри дар мисоли якум овардашуда бо ҳам баробар (эквивалент) мебошанд.

Маводҳои ҳамсон