Язык программирования Си для персонального компьютера
Шрифт:
Константы с плавающей точкой
Константа с плавающей точкой — это действительное десятичное положительное число. Оно включает целую часть, дробную часть и экспоненту. Константы с плавающей точкой имеют следующий формат представления:
[<цифры>][.<цифры>][<э>[-]<цифры>]
<цифры> —одна или более десятичных цифр (от 0 до 9); <э>—признак
Экспонента состоит из символа экспоненты, за которым следует целочисленное значение экспоненты, возможно со знаком плюс или минус.
Между цифрами или символами константы пробельные символы недопустимы.
Примеры констант с плавающей точкой:
15.75
1.575Е1
1575е-2
25.
Примеры констант с плавающей точкой с опущенной целой частью:
.75
.0075е2
Константы с плавающей точкой всегда специфицируют положительные значения. Если требуются отрицательные значения, то необходимо сформировать константное выражение и? знака минус и следующей за ним константы. Знак минус рассматривается при этом как арифметическая операция.
Примеры:
– 0.0025
– 2.5е-3
– .125
– .175Е-2
Все константы с плавающей точкой имеют тип double. В СП ТС можно явно присвоить константе тип float, добавив к ней суффикс f или F.
Символьные константы
Символьная константа — это буква, цифра, знак пунктуации или специальный символ, заключенный в апострофы. Значение символьной константы равно коду представляемого ею символа. Символьная константа имеет следующую форму представления:
'<символ>'
<Символ> может быть любым символом из множества представимых символов (в том числе любым специальным символом), за исключением символов апостроф ('), обратный слэш (\) и новая строка.
Для представления символов апостроф и обратный слэш в качестве символьной константы необходимо вставить перед ними символ обратный слэш — '\'' и '\\'. Для представления символа новой строки используется запись '\n' (см. раздел 1.1.4).
Примеры символьных констант приведены в таблице 1.7.
Таблица 1.7.
Константа | Значение |
'а' | Малая буква а |
‘?’ | Знак вопроса |
‘\b’ | Символ забой |
‘\х1В’ | Символ ESC в коде ASCII |
Символьные константы имеют тип int. Младший байт хранит код символа, а старший байт — знаковое расширение младшего байта.
Помимо односимвольных констант, в СП ТС реализованы двухсимвольные константы, например 'An', '\n\t', '\007\007'.
Компилятор языка Си имеет опцию, позволяющую определить тип char по умолчанию как беззнаковый тип — unsigned char. В этом случае старший байт любой односимвольной константы будет нулевым.
Символьные строки
Символьная строка — это последовательность символов, заключенная в двойные кавычки. Символьная строка рассматривается как массив символов, каждый элемент которого представляет отдельный символ. Символьная строка имеет следующую форму представления:
"<символы>"
<символы> — это произвольное (в том числе нулевое) количество символов из множества представимых символов, за исключением символов двойная кавычка ("), обратный слэш (\) и новая строка. Чтобы использовать эти символы внутри символьной строки, нужно представить их с помощью соответствующих специальных символов, как показано на следующих примерах:
"Это символьная строка\n"
"Первый \\ Второй"
"\"Да, конечно,\"— сказала она."
"Следующая строка — пустая:"
""
Для формирования символьных строк, занимающих несколько строк текста программы, используется комбинация символов — обратный слэш и новая строка. Компилятор языка Си проигнорирует эту комбинацию символов, а символьные строки объединит и представит в памяти как одну строку. Например, символьная строка:
"Длинные строки могут быть раз\
биты на части."
идентична строке:
"Длинные строки могут быть разбиты на части."
В СП MSC версии 5.0 и в СП ТС для формирования символьных строк, занимающих несколько строк текста программы, не требуется применения комбинации символов обратный слэш и новая строка. Символьные строки, следующие друг за другом и не разделенные ничем, кроме пробельных символов, объединяются компилятором языка Си в одну строку.
Например, программа
main
{
char *р;
p = "Данная программа — пример того, как можно"
" автоматически\nосуществлять объединение"
" строк в очень длинную строку;\n"
" такая форма записи может повысить"
" наглядность программ.\n";
printf("%s", p);
}
напечатает следующий текст:
Данная программа—пример того, как можно автоматически
осуществлять объединение строк в очень длинную строку;
такая форма записи может повысить наглядность программ.
Каждый символ символьной строки (в том числе каждый специальный символ) хранится в отдельном байте оперативной памяти. Нулевой символ ('\0') автоматически добавляется в качестве последнего байта символьной строки и служит признаком ее конца. Каждая символьная строка в программе рассматривается как отдельный объект; если в программе содержатся две идентичные символьные строки, то они будут занимать две различные области оперативной памяти.