Константами називаються перелік величин в програмі. У мові Сі розділяють чотири типи констант: цілі константи, константи з плаваючою комою, символьні константи і рядковими літерали.
Ціла константа: це десяткове, вісімкове або шістнадцяткове число, яке подає цілу величину у відповідній формі.
Десяткова константа складається з однієї або декількох десяткових цифр, причому перша цифра не повинна бути нулем (інакше число буде сприйняте як вісімкове).
Вісімкова константа складається з обов’язкового нуля і однієї або декількох вісімкових цифр (без вісімок і дев’яток, оскільки ці цифри не входять у вісімкову систему числення).
Шістнадцяткова константа починається з обов’язкової послідовності 0х або 0Х і містить одну або декілька шістнадцяткових цифр (цифри є набором цифр шістнадцятвої системи числення: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) . Приклади подано у таблиці 5.
Таблиця 5.
Десяткова константа | Вісімкова константа | Шістнадцяткова константа |
---|---|---|
16 | 020 | 0x10 |
127 | 0117 | 0x2B |
240 | 0360 | 0XF0 |
Якщо вимагається сформувати від’ємну цілу константу, то використовують знак “-” перед записом константи (який називатиметься унарним мінусом). Наприклад: -0x2A, -088, -16.
Кожній цілій константі своюється тип, що визначає перетворення, які повинні бути виконані, якщо константа використовується у виразах. Тип константи визначається таким чином:
- десяткові константи розглядаються як величини із знаком, і їм присвоюється тип int (ціла) або long (довга ціла) відповідно до значення константи. Якщо константа менше 32768, то їй присвоююється тип int інакше long.
- вісімковим і шістнадцятковим константам присвоюється тип int, unsigned int (беззнакове ціле), long або unsigned long залежно від значення константи згідно табл 6.
Таблиця 6
Діапазон шістнадцяткових констант | Діапазон вісімкових констант | Тип |
---|---|---|
0x0 - 0x7FFF | 0 – 077777 | int |
0X8000 - 0XFFFF | 0100000 – 0177777 | unsigned int |
0X10000 - 0X7FFFFFFF | 0200000 – 017777777777 | long |
0X80000000 - 0XFFFFFFFF | 020000000000 - 037777777777 | unsigned long |
Для того, щоб будь-яку цілу константу визначити типом long, достатньо в кінці константи поставити букву “l” або “L”.
Наприклад: 5l, 6l, 128L, 0105L, OX2A11L.
Константа з плаваючою крапкою – десяткове число, подане у вигляді дійсної величини з десятковою крапкою або експонентою. Формат має вигляд:
[ цифри ].[ цифри ] [ Е|e [+|-] цифри ] .
Число з плаваючою крапкою складається з цілої і дробові частини і (або) експоненти. Константи з плаваючою крапкою представляють додатні величини подвійної точності (мають тип double). Для визначення від’ємної величини необхідно сформувати константний вираз, що складається із знаку мінуса і додатної константи.
Приклади: 115.75, 1.5Е-2, -0.025, .075, -0.85Е2
Символьна константа – подається символом розміщеному в апострофах. Керуюча послідовність розглядається як одинарний символ, допустимо її використовувати в символьних константах. Значенням символьної константи є числовий код символу.
Приклади:
– пропуск,
Q
– буква Q,
\n
– символ нового рядка,
\\
– зворотна дробова риска,
\v
– вертикальна табуляція .
Символьні константи мають тип int і при перетворенні типів доповнюються знаком.
Рядкова константа (літерал) – послідовність символів укладені в лапки (") . Наприклад: “Школа № 35”, “місто Лондон”, “YZPT ВЕРСІЯ”.
Відзначимо, що всі керуючі символи, лапка ("), зворотна дробова риска () і символ нового рядка в рядковому літералі і в символьній константі подається відповідними керуючими послідовностями. Кожна Керуюча послідовність представляється як один символ. Наприклад, при друці літерала “Школа \n № 35” його частина “Школа” буде надрукована на одному рядку, а друга частина “№ 35” на наступному рядку.
Символи рядкового літералу зберігаються у області оперативної пам’яті. У кінець кожного рядкового літералу компілятором додається нульовий символ, що задається керуючою послідовністю \0
.
Рядковий літерал має тип char[]. Це означає, що рядок розглядається як масив символів. Відзначимо важливу особливість, число елементів масиву рівне числу символів в рядку плюс 1, оскільки нульовий символ (символ кінця рядка) також є елементом масиву. Всі рядкові літерали розглядаються компілятором як різні об’єкти. Рядкові літерали можуть розташовуватися на декількох рядках. Такі літерали формуються на основі використання зворотної дробової риски і клавіші введення. Зворотна риска с символом нового рядка ігнорується компілятором, що призводить до того, що наступний рядок є продовженням попередньої. Наприклад:
*“рядок невизначеної *
довжини”
повністю ідентична літералу
“рядок невизначеної довжини”.
Для зчеплення рядкових літералів можна використовувати символ (або символи) пропуску. Якщо в програмі зустрічаються два або більш рядкових літерали, розділені тільки пропусками, то вони розглядатимуться як один символьний рядок. Цей принцип можна використовувати для формування рядкових літералів довжиною більше одного рядка.
Коментарі