Літерали
Літерали (literals) — це постійні значення, такі як 1 або 3.14159. Для кожного власного типу C++ існують літерали, включаючи символьний і булевий типи, цілі, числа з плаваючою точкою і покажчики. Можливі строкові літерали. Ось деякі приклади літералів :
5 //ціла константа
5u //і або U означає unsigned (беззнакова)
5L // I або L означає long (довга)
05 //ціла константа у вісімковому виді
0x5 //ціла константа в шістнадцятковому виді
true //булева константа
5.0 //константа з плаваючою точкою, що трактувала як double
5.0F //f або F — з плаваючою точкою
//зазвичай одинарній точності
5.0L //I або L означає довгу константу
//з подвійною точністю
'5' //символьна константа, символ з номером ASCII 53
' \n' //цей символ починає новий рядок
L'XYZ' //wchar_t символ XYZ .
"5" //рядок, що складається з символу '5'
"рядок і символ переходу на новий рядок \n"
5555555555555555 //ціле, занадто велике
//для більшості машин
Символьні літерали зазвичай даються у виді 'символ' Наприклад:
'А' //прописна буква А, номер АSСII 65
'а' //рядкова буква а, номер АSСII 97
'\0' //нульовий символ — символ кінця рядка
'+' //символ оператора складання (+)
Для деяких недрукованих і спеціальних символів потрібно еsсаре -последо- вательность.
Символьні константи
'\а ' | звуковий сигнал (alert) |
' \\ ' | обернена коса риска (backslash) |
' \b ' | повернення на крок (backspace) |
'\r ' | повернення каретки (carriage return) |
' \" ' | подвійні лапки (double quote) |
' \f ' | прогін листа (formfeed) |
' \t' | табуляція (tab) |
' \n' | переклад рядка (newline) |
' \0' | нульовий символ (null character) |
' \' ' | апостроф (single quote) |
' \v ' | вертикальая табуляція (vertical tab) |
' \101' | вісімковий ASCII -код 'А' |
' \x041' | шістнадцятковий ASCII -код 'А' |
L 'оор' | wchar_t константа |
Строковий літерал зберігається в пам'яті як послідовність символів, що закінчується символом зі значенням 0. Строкові літерали — це static char [ ] константи. Спеціальні символи усередині рядка повинні упереджатися символом оберненої косої риски \.
"а" //два байти для зберігання 'а' і '\0'
"a\tb\n" //п'ять байтів 'а' '\ t' ' b' '\n' '\0'
"1 \\" //чотири байти '1' ' ' '\\' \0'
"\" " //два байти ' " '\0'
" " //один байт для зберігання ' \0 ', порожній рядок
При виведенні цих рядків символи, що управляють, поводяться відповідним чином. Так, другий рядок з наведеного прикладу надрукує символ а, потім — декілька пропусків, що визначається знаком табуляції, потім символ b і перехід на новий рядок.
Строкові літерали, розділені тільки порожнім місцем, розуміються як один рядок.
"Це один рядок,"
"Оскільки вона розділена тільки "
"пропусками і переводом рядка".
Літерали з плаваючою точкою можуть записуватися з експоненціальною частиною (що включає, якщо потрібно, знак) або без такої:
3.14f 1.234F | //константи з плаваючою точкою |
//і одинарною точністю | |
0.1234567 | //з подвійною точністю |
0.123456789L | //довга з подвійною точністю |
3. 3.0 0.ЗЕ1 | //усе це 3.0 з подвійною точністю |
300е-2 | //теж 3.0 |