Переменные и операции языка С++
Здесь представлены базовые компоненты программ на С++. В их числовходят типы данных, переменные, константы и выражения.
- Предопределенные типы данных в С++ включают в себя типы int, char, float, double и void. В языке С++ гибкость типов данных увеличивается благодаря применению модификаторов типов. Эти модификаторы изменяют точность представления и диапазон значений переменных. Модификаторами типа являются signed, unsigned, short и long.
- Идентификаторы в С++ могут иметь длину до 32 символов и должны начинаться с буквы или подчеркивания. Последующие символы идентификатора могут быть буквой, цифрой или подчеркиванием. Идентификаторы С++ чувствительны к регистру. Ограничение на 32 символа может быть, однако, изменено путем установки опций компилятора.
- Директива #include является специальной командой компилятора. Она предписывает компилятору включить в программу содержимое определенного файла, как если бы вы сами ввели его в текущий исходный файл.
- Объявление констант предусматривает использование директивы #define для объявления констант, определенных при помощи макросов, или использование ключевого слова const для объявления формальных констант. Формальные константы требуют от вас определения их типа (значением по умолчанию является int), имени и ассоциированного с ними значения.
- Объявление переменной требует, чтобы вы задали ее тип и имя, С++ дает вам возможность инициализировать переменную при ее объявлении. Вы можете объявить несколько переменных в одном операторе объявления.
- Арифметическими операциями являются +, -, *, / и % (деление по модулю).
- Арифметические выражения различаются по сложности. Самое простое выражение содержит единственный элемент данных (литерал, константу или переменную). Сложные выражения включают набор операций, функции, литералы, константы и переменные.
- Операции инкремента и декремента используются в префиксной и постфиксной формах. Язык С++ дает вам возможность применять эти операции к переменным, в которых хранятся символы, целые числа и даже числа с плавающей точкой.
- Арифметические операции присваивания дают вам возможность записывать более короткие арифметические выражения, в которых первый операнд является также переменной, принимающей результат вычислений.
- Оператор sizeof возвращает как для типов данных, так и для переменных их размер в байтах.
- Механизм приведения типа дает вам возможность форсировать преобразование типа выражения.
- Операции отношений и логические операции дают вам возможность строить логические выражения.
- Булевы выражения объединяют операции отношений и логические операции для формулирования нетривиальных условий. Эти выражения позволяют программе принимать сложные решения.
- Условное выражение предлагает вам короткую форму для простого оператора if-else с двумя альтернативами.
- Операции манипулирования битами выполняют поразрядные операции AND, OR, XOR и NOT. Кроме того, в С++ поддерживаются поразрядные операции сдвига << и >>.
- Операции манипулирования битами с присваиванием предлагают короткие формы для простых операций манипулирования битами.
Множество символов Си включает большие и малые буквы из английского алфавита и 10 десятичных арабских цифр:
-большие английские буквы: A B C D E F G H I J K L M N O P Q R T U V W X Y Z
-малые английские буквы: a b c d e f g h i j k l m n o p q r t u v w x y z
-десятичные цифры: 0 1 2 3 4 5 6 7 8 9
Буквы и цифры используются при формировании констант, идентификаторов и ключевых слов. Все эти конструкции описаны ниже. Компилятор Си рассматривает одну и ту же малую и большую буквы как отличные символы. Если в данной записи использованы малые буквы, то замена малой буквы "a" на большую букву "A" сделает отличной данную запись от предшествующей.
Пробел, табуляция, перевод строки, возврат каретки, новая страница, вертикальная табуляция и новая строка- это сиволы, называемые пробельными, поскольку они имеют то же самое назначение, как и пробелы между словами и строками на печатной странице. Эти символы разделяют объекты, определенные пользователем, такие, как константы и идентификаторы, от других объектов программы.
Символ CONTROL-Z рассматривается как индикатор конца файла. Компилятор игнорирует любой текст, следующий за символом
CONTROL-Z.
Компилятор Си игнорирует пробельные символы, если они не используются как разделители или как компоненты константы-символа или строковых литералов. Это нужно иметь в виду, чтобы дополнительно использовать пробельные символы для повышения наглядности программы (например,для просмотра редактором текстов).
Знаки пунктуации и специальные символы
Эти символы имеют специальный смысл для компилятора Си. Их использование в языке Си описывается в дальнейшем содержании руководства. Знаки пунктуации из множества представимых символов, которые не представлены в данном списке, могут быть использованы только в строковых литералах, константах-символах и комментариях.
ESC- последовательности- это специальные символьные комбинации, которые представляют пробельные символы и неграфические символы в строках и символьных константах.
Их типичное использование связано со спецификацией таких действий, как возврат каретки и табуляция , а также для задания литеральных представлений символов, таких как символ двойная кавычка. ESC-последовательность состоит из наклонной черты влево, за которой следует буква, знаки пунктуации ' " \ или комбинация цифр. В таблице 2.2. приведен список ESC- последовательностей языка Си.
Если наклонная черта влево предшествует символу, не включенному в этот список, то наклонная черта влево игнорируется, а символ представляется как литеральный. Например, изображение \c представляет символ "c" в литеральной строке или константе-символе.
Последовательности \ddd и \xdd позволяют задать любой символ в ASCII (Американский стандартный код информационного интерфейса) как последовательность трех восьмеричных цифр или двух шестнадцатеричных цифр. Например, символ пробела может быть задан как \010 или \x08. Код ASCII "нуль" может быть задан как \0 или \x0 . В восьмеричной ESC- последовательности могут быть использованы от одной до трех восьмеричных цифр.
Например, символ пробела может быть задан как \10 . Точно так же в шестнадцатеричной ESC- последовательности могут быть использованы от одной до двух шестнадцатеричных цифр. Так, шестнадцатеричная последовательность для символа пробела может быть задана как \x08 или \x8 .
Замечание:
Когда используется восьмеричная или шестнадцатеричная ESCпоследовательность в строках, то нужно полностью задавать все цифры ESC- последовательности (три цифры для восьмеричной и две цифры для шестнадцатеричной ESC- последовательностей). Иначе, если символ непосредственно следующий за ESC- последовательностью, случайно окажется восьмеричной или шестнадцатеричной цифрой, то он проинтерпретируется как часть последовательности. Например, строка \x7Bell при выводе на печать будет выглядеть как {ell , поскольку \x7B проинтерпретируется как символ левой фигурной скобки({) . Строка \x07Bell будет правильным представлением символа "звонок" с последующим словом Bell.
ESC- последовательности позволяют посылать неграфические управляющие символы к внешним устройствам. Например, ESC- последовательность\033 часто используется как первый символ команд управления терминалом и принтером. Неграфические символы всегда должны представляться ESC-последовательностями, поскольку, непосредственное использование в программах на Си неграфических символов будет иметь непредсказуемый результат.
Наклонная черта влево (\) помимо определения ESC-последовательностей используется также, как символ продолжения строки в препроцессорных определениях.
Если символ "новая строка" следует за наклонной чертой влево, то новая строка игнорируется и следующая строка рассматривается, как часть предыдущей строки.
Операции- это специальные комбинации символов, специфицирующие действия по пробразованию различных величин. Компилятор интерпретирует каждую из этих комбинаций как самостоятельную единицу, называемую лексемой (token).
Операция условного выражения ?: -это тернарная, а не двухсимвольная операция. Формат условного выражения следующий: <expression>?<expression>:<expression>
Константа- это число, символ или строка символов. Константы используются в программе как неизменяемые величины. В языке Си различают четыре типа констант: целые константы, константы с плавающей точкой, константы-символы и строчные литералы.
Целая константа- это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целую величину. Десятичная константа имеет следующий формат представления:
<digits>, где <digits> - это одна или более десятичных цифр от 0 до 9.
Восьмеричная константа имеет следующий формат представления:
0<odigits>,
где <odigits> - это одна или более восьмеричных цифр от 0 до 7. Запись ведущего нуля необходима.
Шестнадцатеричная константа имеет один из следующих форматов представления:
0x<hdigits>
0X<hdigits>,
где <hdigits> одна или более шестнадцатеричных цифр. Шестнадцатеричная цифра может быть цифрой от 0 до 9 или
буквой (большой или малой) от A до F. В представлении константы допускается "смесь" больших и малых букв. Запись ведущего нуля и следующего за ним символа x или X необходима.
Пробельные символы не допускаются между цифрами целой константы. В Табл. 2.4 иллюстрируются примеры целых констант.
Целые константы всегда специфицируют положительные величины. Если требуется отрицательные величины, то необходимо сформировать константное выражение из знака минус и следующей за ним константы. Знак минус рассматривается как арифметическая операция.