Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора по яп 2.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
204 Кб
Скачать
☆

13. Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки. Null.

Константы. Значения констант не могут быть переопределены. Тип константы распознается компилятором по ее записи в программе.

1 Целые Константы

десятичные

0

2

63

83

восьмеричные

0

02

077

0123

шестнадцатеричные

0x0

0x2

0x3f

0x53

символьные

Константа, которая начинается нулем за которым идет x (0x), является шестнадцатеричным числом (с основанием 16),

а константа, которая начинается нулем за которым идет цифра, является восьмеричным числом (с основанием 8).

2 Константы с Плавающей Точкой

Константы с плавающей точкой имеют тип double. Как и в предыдущем случае, компилятор должен предупреждать о константах с плавающей точкой, которые слишком велики, чтобы их можно было представить. Вот некоторые константы с плавающей точкой:

1.23 .23 0.23 1. 1.0 1.2e10 1.23e-15

3.1415f - тип float

2E+6L - тип long double

3 Символьные Константы

Символьная константа - это символ, заключенный в одинарные кавычки; например, 'a' или '0'. Можно также представлять символ одно-, дву- или трехзначным восьмеричным числом (символ \, за которым идут восьмеричные цифры), или одно-, дву- или трехзначным шестнадцатеричным числом (\x, за которым идут шестнадцатеричные цифры). Например:

'\6' '\x6' 6 ASCII ack

'\60' '\x30' 48 ASCII '0'

'\137' '\x05f' 95 ASCII '_'

4 Строки

Строковая константа - это последовательность символов, заключенная в двойные кавычки:

"это строка"

Строка представляет собой массив, элементами которого являются отдельные символы. Чтобы программам было удобно определять конец строки, компилятор автоматически помещает в конец каждой строки нуль-символ \0. Для физического хранения строки требуется на одну ячейку памяти больше, чем число заключенных в кавычки символов.

Строка имеет тип "вектор из соответствующего числа символов", поэтому "asdf" имеет тип char[5]. Пустая строка записывается "" (и имеет тип char[1]). Заметьте, что для каждой строки s strlen(s)==sizeof(s)-1, поскольку strlen() не учитывает завершающий 0.

Вставляя численную константу в строку с помощью восьмеричной или шестнадцатеричной записи благоразумно всегда использовать число из трех цифр. Читать запись достаточно трудно и без необходимости беспокоиться о том, является ли символ после константы цифрой или нет. Например:

char v1[] = "a\x0fah\0129"; // 'a' '\xfa' 'h' '\12' '9'

char v2[] = "a\xfah\129"; // 'a' '\xfa' 'h' '\12' '9'

char v3[] = "a\xfad\127"; // 'a' '\xfad' '\127'

Будьте внимательны и не путайте символьную константу со строкой, содержащей один символ: 'X' - это не то же самое, что "X". Первое - это отдельный символ, использованный с целью получения численного значения, соответствующего букве х в машинном наборе символов. Второе - символьная строка, состоящая из одного символа (буква х) и \0

5 Ноль

Ноль (0) можно употреблять как константу любого целого, плавающего или указательного типа. Никакой объект не размещается по адресу 0. Тип нуля определяется контекстом. Обычно (но не обязательно) он представляется набором битов все-нули соответствующей длины.

Символьная константа '\0', изображающая символ со значением 0, часто записывается вместо целой константы 0 , чтобы подчеркнуть символьную природу некоторого выражения.

NULL обычно используют при наличии адресных ссылок

int zn1=0;

int zn1=NULL;

int zn1=’\0’;