Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Константы.




Константой называется фиксированная величина, которая не изменяется в процессе выполнения алгоритма или программы. Примером является всем известное знаменитое число " ПИ", значение которого в компьютере принимается приближенно равным 3, 1415926.
В языке Си определено пять типов констант: символьные константы, целые константы, вещественные константы, константы перечисляемого типа и нулевой указатель (null).
Символьные константы служат для изображения отдельных символов из таблицы ASCII символов. Каждая такая константа состоит из изображения самого символа и ограничивающих его с двух сторон апострофов, например, 'A' или 'b'. Внутри апострофов записываются цифры, буквы, знаки препинания и управляющие символы, называемые управляющими последовательностями, которые не имеют графического изображения на экране дисплея или на принтере. Для кодирования таких символьных констант используются комбинации из нескольких символов, имеющих графическое представление. Каждая управляющая последовательность начинается с символа обратной косой черты (" backslash" - обратный слэш).
Ниже в таблице представлены эти управляющие символы и дана расшифровка их назначения.

'\a' сигнал-звонок
'\b' возврат на одну позицию (на один символ)
'\f' новая станица, перевод страницы
'\n' новая строка, перевод строки
'\r' возврат каретки (курсора) к началу строки
'\t' горизонтальная табуляция
'\v' вертикальная табуляция
'\\' обратная косая черта - обратный слэш
'\" ' кавычка (символ двойной кавычки)
'\'' апостроф (одиночная кавычка)
'\0' нулевой символ, нулевой байт
'\ddd' восьмеричная константа, здесь d - восьмеричная цифра
'\0xhh' шестнадцатеричная константа, здесь h - шестнадцатеричная цифра
'\? ' знак вопроса

Существует еще один способ представления символьных констант (а значит и управляющих эскейп-последовательностей, ESC-sequence). Суть его состоит в том, что после обратного слэша (косой черточки) пишут код символа в таблице ASCII символов в восьмеричной или в шестнадцатеричной системе счисления. Даже если просто после обратного слэша написать символ, не входящий в таблицу управляющих последовательностей, то полученная совокупность символов воспримется как как написанный после обратной черты символ.
В отличие от символьных констант существуют строковые константы. Это разные конструкции языка. Символьная константа, например 'a' отличается от строковой константы " a". Внешнее отличие состоит в способе записи констант. Первая из них записывается обрамленной в апострофы с двух сторон, вторая - ограничивается тоже с двух сторон двойными кавычками. Кроме того, первая 'a' занимает 1 байт памяти, а вторая " a" уже два байта - всегда на 1 байт больше. Этот последний байт называют нулевым байтом, так как в конец строки заносится символьная константа - нулевой символ '\0'. Формально строковые константы не относятся к константам языка Си в соответствии с его стандартом. Однако они легко вводятся следующим определением: " Строковая константа - это последовательность символов, заключенная в двойные кавычки" (от есть не в апострофы). Чтобы отличить их друг от друга предлагалось даже назвать последние " стрингами" от английского слова string, которое применяется у Б.Кернигана и Д.Ритчи для обозначения строковых констант.
В языке Си строка - это массив символов, заканчивающийся нулевым байтом. В языке Си нет стандартного типа " строка". Поэтому строки оьъявляются как массив символов. Но в языке предусмотрены библиотечные функции для работы со строками. Как известно, каждый символ в отдельности занимает 1 байт. В памяти компьютера все символы строки размешаются подряд друг за другом. Строка занимает в памяти компьютра на 1 байт больше, чем ее длина, выраженная в символах.
Теперь перейдем к целым константам. Десятичная целая константа, если она не ноль, записывается как обычная последовательность десятичных цифр. При этом старшая цифра десятичной константы не дложна быть нулем. Ноль, как старшая цифра числа, как префикс числа, принимается за признак восьмеричной целой константы. Естественно, что все последующие ее цифры не должны превышать числа 7. Так, например, 1864 и 3765 - десятичные целые константы, поскольку у них нет префикса " 0" и старшая цифра есть не равное нулю число " 1" или " 3". Напротив, 03567 или 01762 - целые восьмеричные константы. Каждая из них имеет префикс " 0" - первую цифру числа и все цифры каждого числа не превышают числа 7.
Признаком шестнадцатеричной целой константы является префиксы " 0x" или " 0X" перед последовательностью шестнадцатеричных цифр (0, 1, 2,..., 9, A, B, C, D, E, F). Например: 0xA6 - это шестнадцатеричное представление десятичного числа 10*16+6=160+6=166. Аналогично, 0XDF - это шестнадцатеричное представление десятичного числа 13*16+15=208+15=223.
Вещественные константы представляются в памяти компьютера как числа с плавающей запятой. Число называется действительным или вещественным, если оно имеет целую и дробную части, между которыми проставлена десятичная точка. Вещественная константа состоит из двух целых констант. Одна для целой части числа, другая - для изображения дробной части числа. Между этими двумя целыми константами ставится десятичная точка. Иногда такая константа может не иметь или целой или дробной части, но точка между ними обязательна. Например: 546. 3.1415926 0.009865 и так далее. Иногда вещественная константа записывается в экспоненциальной форме. Это значит, что вначале пишется мантисса числа в стандартной форме, то есть не превышающая по абсолютной величине 10, вслед за нею записывается буква e или E, которая обозначает выражение " умножить на число 10 в степени". Далее записыватся проядок числа. Порядок числа показывает количество нулей до первой значащей цифры числа, если само число по абсолютной величине не превышает 1, или количество нулей в конце очень большого числа. Например:
.31415926E+01 = 0.31415626*10 = 3.1415926 или
7.897534E-03 = 7.897534*0.001 = 0.007897534 или
4.987535E+10 = 4.987535* 10000000000 = 49875350000.
Всем вещественным константам по умолчанию компилятор будет присваивать тип double, для которого в памяти компьютера будет автоматически отводиться 8 байт (64 двоичных разряда). Даже такая действительная константа, как школьное значение числа " ПИ", равная 3.14, будет иметь тип double. Программист имеет право пересмотреть это распределение памяти и дать меньшее количество знаков под какую-то конкретную константу. Для этого он должен указать после числового значения константы один из суффиксов: F(f) - тип float (для вещественной константы) или
L(l) - тип long (для целых и вещественных констант) или
U(u) - тип unsigned (для целых констант). Так, например, если хочешь, чтобы вещественная константа 6.85432 занимала 4 байта, а не 8 байт, то нужно написать так: 6.85432F - константа типа float (выделяется 4 байта). Если же программист хочет, чтобы такая же константа 6.85 занимала 10 байт, а не 8, то надо написать: 6.85L - константа типа long double (выделяется 10 байт).
Теперь перейдем к константам перечислимого типа. Обратим свое внимание на такой факт. Часто во многих задачах приходится пользоваться наименованиями дней недели, месяцев, сезонов, времен года и тому подобное, которые представляют собой небольшие текстовые массивы. Это постоянная информация, которую называют перечислениями. Перечисления состоят из нескольких констант, называемых константами перечисляемого типа. Для описания таких конструкций используется служебное слово enum, которое используется специально для ввода в программу перечислений. В английском языке есть такие два слова: enumerate - перечислять и enumeration - перечисление. Очевидно, отсюда произошло и служебное слово языка Си enum. Есть еще несколько тонкостей использования таких констант, поэтому поясним немного, как ими можно пользоваться программисту. Лучше всего показать это на примерах:
enum children {Victor=1, Ivan, Katerina};
enum okruga {Central, Zapadniy, Prikubanskiy, Karasunskiy}
В первом списке даны имена детей. Обратите внимание, что после константы Victor имеется знак" =" и записано число 1. В этом случае именованная константа со знаком " =" получает значение 1, а все последующие за ней константы получат целые числовые значения, увелиличенные на 1. Поэтому значение константы Ivan равно 2, а числовое значение именованной константы Katerina равно 3. Во втором примере даны наименования округов города. Однако, в новом списке нет знака " =". Тогда округу Central будет соответствовать числовое значение 0, а все последующие константы также, как и в предыдущем случае, получат увеличенные на 1 значения. Таким образом, округ Zapadniy будет иметь значение 1, округ Prikubanskiy - значение 2, и округ Karasunskiy - значение, равное 3.
В завершение раздела " Константы" рассмотрим нулевой указатель Null. Если все рассмотренные константы называт арифметическими, то нулевой указатель называют неарифметической константой. Роль и назначение этой константы мы выясним в дальнейшем. Эта константа оказывается востребованной при работе с указателями. Этот материал будет затрагиваться на более поздних уроках. Нужно только запомнить, что нуль-указатель может быть изображен либо как 0, либо как 0L, либо как именованная константа NULL.
На этом предварительное изучение констант мы считаем законченным. На следующем уроке мы перейдем к изучению переменных величин.

Дайте характеристику и назначение языка FORTRAN.


Данная страница нарушает авторские права?


mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал