Ідентифікатори, зарезервовані слова, літерали, управляючі послідовності

Ідентифікатори, зарезервовані слова, літерали, управляючі послідовності



1. Що таке ідентифікатор в C++? Які існують правила побудови ідентифікатора?

Ідентифікатор представляє собою ім’я, яке присвоюється змінній, константі, функції, власному типу чи іншому елементу, що визначається користувачем. Ідентифікатори можуть складатися з одного чи декількох символів. Імена змінних повинні починатися з букви або символу підкреслення.

В мові C++ рядкові та прописні символи розглядаються як різні символи (на відміну від мови Паскаль).

Приклади ідентифікаторів:

x
max
Delta
my_method
w23x5

2. Які елементи мови C++ забороняється використовувати в якості ідентифікатора?

У мові C++ не можна використовувати в якості ідентифікаторів ключові слова.

Приклади ключових слів мови C++:

asm           auto           bool               break
case          catch         char               class
const         const_class     continue          default
delete        do             double            dinamic_cast
else          enum           explicit          export
extern        false         float             for
friend        goto           if                 inline
int           long           mutable           namespace
new           operator      private           protected
public        register      reinterpret_cast     return
short         signed        sizeof            static
static_cast     struct        switch            template
this          throw         true               try
typedef       typeid        typename          union
unsigned      using         virtual           void
volatile      wchar_t       while

3. Що таке літерали в мові C++?

Літерали – це фіксовані значення (константи), які не можуть бути змінені програмою. Літерали (константи) можуть мати будь-який базовий тип даних. Спосіб представлення кожної константи залежить від її типу.

Приклади літералів:

23
-8.45
's'
L'A'
12.345F
4.3e-8
4.3E-8
1300L



4. Яким чином компілятор розпізнає цілочисельні літерали?

Компілятор C++ пробує визначити тип літерала самостійно на основі його значення.

Наприклад, для 16-розрядного середовища:

  • число 23 зв’язується з типом int;
  • число 300929 зв’язується з типом long int.

Якщо потрібно примусово встановити значення long int, тоді до літералу потрібно додати суфікс ‘L‘ або ‘l‘. Наприклад:

20L
-300l

Якщо потрібно встановити значення літералу як беззнакового (з префіксом unsigned), тоді до літералу додається суфікс ‘U‘ або ‘u‘.

Наприклад:

1500uL // тип unsigned long int
1500U  // unsigned int
1500u  // unsigned int
1500ul // unsigned long int
1500UL // unsigned long int

5. Яким чином компілятор розпізнає літерали з плаваючою комою?

За замовчуванням, усі константи з плаваючою комою мають тип double. Якщо потрібно встановити тип float, тоді до константи потрібно додати суфікс ‘f‘ або ‘F‘. Якщо потрібно встановити тип long double, тоді до константи додається суфікс ‘l‘ або ‘L‘.

Наприклад:

9000.0009f         // float
8888.777F          // float
111.222            // double
0.33L              // long double
-56785757574.33l   // long double

6. Яким чином в C++ записуються шістнадцяткові та вісімкові літерали?

Часто в програмах доцільним є використання шістнадцяткової або вісімкової систем числення замість десяткової. Запис літералів у шістнадцятковій або вісімковій системах числення використовується тільки для цілочисельних типів.

У вісімковій системі числення використовуються цифри від ‘0‘ до ‘7‘.

У шістнадцятковій системі числення використовуються цифри від ‘0‘ до ‘9‘ та літери від ‘A‘ до ‘F‘.

Вісімкові літерали починаються з префіксу ‘0‘.

Шістнадцяткові літерали починаються з префіксу ‘0x‘ або ‘0X‘.

Наприклад:

010   // Число 10 у вісімковій системі числення
055   // вісімкова система числення
0x10  // шістнадцяткова система числення
0XAFD // шістнадцяткова система числення

7. Що таке управляючі послідовності символів?

У мовах програмування існує ряд констант, які неможливо ввести у вихідний текст програми безпосередньо з клавіатури. Наприклад, символ повернення каретки.

Крім того, деякі символи, такі як одинарні або подвійні лапки, в C++ мають спеціальне призначення. Тому, їх інколи, неможливо ввести напряму.

Для уникнення такої проблеми, в мові C++ (та й в інших мовах) введені так звані управляючі послідовності символів. Ці послідовності замінюють символи, що мають спеціальне призначення або символи, що неможливо ввести з клавіатури напряму.

Управляючі символьні послідовності мови C++:

\b - повернення на одну позицію
\f - перехід до початку наступної сторінки
\n - новий рядок
\r - повернення каретки
\t - горизонтальна табуляція
\" - подвійна лапка
\' - одинарна лапка
\\ - зворотна дробова риска
\v - вертикальна табуляція
\a - звуковий сигнал
\? - знак питання
\N - вісімкова константа (де N - сама вісімкова константа)
\xN - шіснадцяткова константа (де N - сама шіснадцяткова константа)

Приклад опису змінної, в яку заноситься символ управляючої послідовності.

char c1, c2;
c1 = '\\';   // зворотна дробова риска
c2 = '\"';   // подвійна лапка
c1 = '\23';  // 23 у вісімковій системі числення
c2 = '\x5F'; // 5F у шіснадцятковій системі числення

 


Зв’язані теми