1.3. Ідентифікатори та службові слова
Ідентифікатор -послідовність з букв латинського алфавіту, десяткових цифр та символів підкреслення, що починається не з цифри:
Великі та малі літери різняться. Таким чином, у цьому прикладі два перші ідентифікатори різні. На довжину частини ідентифікатора, що розрізняється, конкретні реалізації накладають обмеження.
Ключові (службові) слова -це ідентифікатори, які зарезервовані в мові для спеціального використання. Ключові слова Сі++:
asm double new switch
auto else operator template
break enum private this
case extern protected throw
catch float public try
char for register typedef
class friend return typeid
const goto short union
continue if signed unsigned
default inline sizeof virtual
delete int static void
do long struct volatile while
Не всі з перелічених службових слів відразу необхідні програмісту, проте їх заборонено використовувати як довільно вибираються імен, і список службових слів потрібно мати вже на початковому етапі знайомства з мовою Сі++. Крім того, ідентифікатори, що включають два поспіль символи підкреслення, резервуються для реалізації C++ і стандартних бібліотек. Ідентифікатори, що починаються із символу підкреслення, використовуються у реалізаціях мови Сі. У зв'язку з цим починати вибрані користувачем ідентифікатори з символу підкреслення та використовувати в них два символи підкреслення поспіль не рекомендується.
2. Константи: цілі, речові (з плаваючою точкою), перераховані, символьні (літерні), рядкові (рядки або літерні рядки)
Константа (літерал) -це лексема, що представляє зображення фіксованого числового, рядкового або символьного(літерного) значення.
Константи діляться п'ять груп: цілі, речові (з плаваючою точкою), перелічувані, символьні (літерні) і рядкові (рядки чи літерні рядки). Перераховані константи проект стандарту мови Сі++ відносить до одного з цілих типів.
Компілятор, виділивши константу в якості лексеми, відносить її до тієї чи іншої групи, а всередині групи - до того чи іншого типу даних по її "зовнішньому вигляду" (за формою запису) у вихідному тексті та за числовим значенням.
Ціла константа: це десяткове, вісімкове або шістнадцяткове число, яке представляє цілу величину в одній з наступних форм: десяткової, вісімкової або шістнадцятковою.
Десятична константаскладається з однієї або декількох десяткових цифр, причому перша цифра не повинна бути нулем (якщо це не число 0), інакше число буде сприйнято як вісімкове.
Вісімкова константаскладається з обов'язкового нуля і однієї або кількох вісімкових цифр (серед цифр повинні бути відсутні вісімка і дев'ятка, тому що ці цифри не входять у вісімкову систему числення).
Шістнадцяткова константапочинається з обов'язкової послідовності 0х або 0Х і містить одну або кілька шістнадцяткових цифр (цифри є набором цифр шістнадцяткової системи числення: 0,1,2,3,4,5,6,7,8, 9,A,B,C,D,E,F)
Приклади цілих констант:
Десяткова Вісімкова Шістнадцяткова
константа константа константа
Якщо потрібно сформувати негативну цілу константу, то використовують знак "-" перед записом константи (який називатиметься унарним мінусом).
Наприклад: -0x2A, -088, -16.
Кожній цілій константі надається тип, що визначає перетворення, якіповинні бути виконані, якщо константа використовується у виразах. Тип константи визначається так:
- десяткові константи розглядаються як величини зі знаком, і їм надається тип int (ціла) або long (довга ціла) відповідно до значення константи.
- вісімковим і шістнадцятковим константам надається тип int, unsigned int (беззнакова ціла), long або unsigned long залежно від значення константи.
Якщо програміста з якихось причин не влаштовує той тип, який компілятор приписує константі, він може явно вплинути на його вибір. Для цього є суфікси L, l (long) і U, u (unsigned). Наприклад, константа 64L матиме тип long, хоча значення 64 повинен бути приписаний тип int. Для однієї константи можна використовувати два суфікси U(u) та L(l), причому у довільному порядку. Наприклад, константи Ох22Ul, Ox16Lu матимуть тип unsigned long.
Речові константи,тобто. константи з плаваючою точкою, навіть не відрізняючись від цілих констант за значенням, мають іншу форму внутрішнього подання в ЕОМ. Ця форма вимагає використання арифметики з плаваючою точкою під час операцій з такими константами. Тому компілятор повинен вміти розпізнавати речові константи. Розпізнає він їх за зовнішніми ознаками. Константа з плаваючою точкою може включати такі шість частин:
ціла частина (десяткова ціла константа);
дробова частина (десяткова ціла константа);
ознака (символ) експоненти е чи Е;
показник десяткового ступеня (десяткова ціла константа, можливо зі знаком);
суфікс F(або f – одинарна точність) чи l (або 1 – подвоєна точність).
У записах речових констант можуть опускатися: ціла або дрібна частина (але не одночасно);десяткова точка або ознака експоненти з показником ступеня (але не одночасно); суфікс. Приклади:
За відсутності суфіксів f(f) або L(1) речові константи мають форму внутрішнього уявлення, якій у мові Сі++ відповідає тип даних double. Додавши суфікс f чи F, константі надають тип float. Константа має тип long double, якщо її поданні використовується суфікс L чи 1.
перераховані константи (або константи перерахування, інакше константи перелічуваного типу) вводяться за допомогою службового слова enum. По суті, це звичайні цілочисельні константи (типу int), яким приписані унікальні та зручні для використання позначення. Як позначення вибираються довільні ідентифікатори, що не збігаються зі службовими словами та іменами інших об'єктів програми. Позначення надаються константам за допомогою визначення, наприклад, такого виду:
Тут enum-службове слово, що визначає тип даних "перерахування", one, two, three - умовні імена, введені програмістом для позначення констант 1,2,3. Після такого визначення у програмі замість константи 2 (і поряд з нею) можна використовувати її позначення two і т.д.
Якщо у визначенні констант, що перераховуються, опускати знаки "=" і не вказувати числових значень, то вони будуть приписуватися ідентифікаторам (іменам) за умовчанням. При цьому найлівіший у фігурних дужках ідентифікатор отримає значення 0, а кожен наступний збільшується на 1. Наприклад, відповідно до визначення
перераховані константи приймуть значення:
zero = 0, one = 1, two = 2, three = 3
Правило про послідовне збільшення на 1 значень перелічуваних констант діє у тому разі, коли першим їх (ліворуч у списку) явно присвоєно значення.
Іменаперерахованих констант повинні бути унікальними, проте до значень констант це не стосується. Одне значення можуть мати різні константи.
Так як негативна ціла константа - це константа без знака, до якої застосована унарна операція "-" (мінус), то константи, що перераховуються, можуть мати і негативні значення.
Для перерахованих констант може бути введено ім'я типу, що відповідає наведеному списку констант. Ім'я типу - це довільно вибирається унікальний ідентифікатор, що поміщається між службовим словом enum і фігурною дужкою, що відкривається.
Символьні (літерні) константи -це один або два символи, укладені в апострофи. Односимвольні константи мають стандартний тип char. Для їхнього значень можуть вводиться змінні символьного типу, тобто. типу char. Приклади констант: 'z', '*', '\012', '\0', '\n', '\х07' - односимвольні константи, 'db', '\х07\х07', '\n\f '- двосимвольні константи. У цих прикладах заслуговують на увагу послідовності, що починаються зі знака '\'. Символ зворотної косої риси '\' використовується, по-перше, при записі кодів, що не мають графічного зображення, і, по-друге, символів апостроф (\'), коса зворотна риса (\\), знак питання (\?) і лапки (\'). Крім того, зворотна коса риса дозволяє вводити символьні константи, явно задаючи їх коди у вісімковому або шістнадцятковому вигляді. Послідовності літер, що починаються зі знака ', називають ескейп-послідовностями.
Допустимі ESC-послідовності в мові С++