|
Программирование >> Элементы языков с и с++
Константы в языке С поддерживаются следующие типы констант (постоянных величин): целые, вещественные, перечислимые и символьные. П Вещественные константы - это, в общем случае, нецелые числа, которые представлены в виде чисел с плавающей точкой. П Перечислшше константы - это значения элементов перечислимого множества (значения такого типа постоянны). П Целые константы. Например: int i = 12; Плавающая точка может определяться так: float г=123.25е-4; ИЛИ г=0.15; Обе записи равноценны. Целые числа, помимо десятичных, могут быть также восьмеричными и шестнадцатеричными. Первые пишутся как int i = o-l; (записано число -1 в 8-ричной системе, т. е. с нулем впереди), а вторые как int i = Оха; (т. е. с Ох впереди). П Среди констант символьного типа различают собственно символьные константы и строковые константы. Первые обозначаются символами в одинарных кавычках (апострофах), вторые - в двойных. Отличие строковых констант от символьных в том, что у строковых констант в конце всегда стоит признак конца строки - символ \0 (так записывается нуль как символ). Этот признак формирует компилятор, когда встречает выражение вида: char s[]= advbn ; ИЛИ вида: char *s= asdf ; (здесь ДЛЯ иллюстрации применена конструкция указатель , о которой речь пойдет в следующих главах). Символьные константы имеют вид: char а= Ь; char с= \п ; char v= \010 ; В первом случае так задаются константы для символов, которые отображаются на экране (это все символы, закодированные в таблице ASCII кодами от 32 и далее). Во втором случае - для символов, которые не имеют экранного отображения и используются как управляющие (это символы с кодами О-31 в таблице ASCII). Второй вид записи - это так называемые esc-последовательности. С их помощью можно записывать не только управляющие, но и любые символы. В этом случае в качестве элементов последовательности выступят сами коды символов. Например, код символа О по таблице ASCII равен 48. В виде esc-последовательности его можно записать как char v=\060; (48 = 060). Новые операции Поговорим об операциях, с которыми еще не встречались в рассмотренных ранее примерах. П Операции отношения: == (равно); ! = (не равно); >= (больше или равно); > (больше); <= (меньше или равно); < (меньше). Если две переменные сравниваются с помощью операций отношения, то результат сравнения всегда бывает булевого типа, т. е. либо ложен, либо истинен. Поэтому мы можем, например, писать: int i=34; int j=i * 25; bccl a=i>j; Операции отношения бывают очень полезны. Допустим, в вашей программе цикл while (выражение) {...} работает НС так, как вам бы того хотелось. Вы никак не можете разобраться, в чем дело, поскольку выражение в операторе while настолько громоздко, что вы не можете его вычислить в момент отладки программы. Тогда это выражение можно присвоить некоторой (объявляемой вами) булевой переменной. Теперь вы сможете в режиме отладчика увидеть значение этого выражения и принять соответствующие меры. Надо учитывать, что операции отнощения по очередности (приоритету) их выполнения младще арифметических операций. Если вы напишете if(i < j-l), то при вычислении выражения в if о сначала будет вычислено j-l, а затем результат будет сравниваться с содержимым переменной i. П Логические операции: ss (и) и (или). Тип выражения, в котором участвуют эти операции, будет булевым, как и для операций отношения. Выражение а ss ь будет истинным только тогда, когда истинны оба операнда (операнды имеют булевы значения). Выражение а i i ь будет истинным только тогда, когда хоть один из операндов истинен. Следует иметь в виду, что компилятор так строит алгоритм вычисления выражений, связанных этими операциями, что выражения вычисляются слева направо, и вычисление прекращается сразу, как только становится ясно, будет ли результат истинен или ложен. Поэтому при формировании выражений подобного рода следует их части, которые могут оказать влияние на полный результат первыми, располагать первыми, что экономит время. П Уиариая (т. е. воздействующая только на один операнд) операция ! (не). Это логическая операция отрицания. Она преобразует операнд, значение которого не равно нулю или истине, в нуль, а нулевой или ложный - в единицу. Результат этой операции представляет собой булево значение. Иногда ее используют в записи вида: if (!а) вместо if (а==0). Действительно, по определению оператора if о условие в его скобках всегда должно быть истинным, поэтому получается, что !а=1 (истина). Тогда ! !а=а=о, поскольку МЫ применили к обеим частям равенства операцию не , а повтор этой операции возвращает число в исходное состояние. К унарным относятся также операции одиночный плюс и одиночный минус , явно устанавливающие знаки чисел или значений переменных. Например: int X = -1; float z-12.5; float у = -z;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |