Константы вещественного типа

Данные константы размещаются в памяти в формате double, а во внешнем представлении могут иметь две формы:

1) с фиксированной десятичной точкой, формат записи: ±n.m, где n, m – целая и дробная части числа;

2) с плавающей десятичной точкой (экспоненциальная форма) представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (Е или е), а порядок – справа. Значение константы определяется как произведения мантиссы и числа 10, возведенного в указанную в порядке степень.

Общий формат таких констант: ±n.mE±p, где n, m – целая и дробная части числа, р – порядок; ±0.xxxE±p – нормализованный вид, например, 1,25×10–8 = 0.125E–7.

Примеры констант с фиксированной и плавающей точками:

1.0 –3.125 100е–10 0.12537е+12.

Пробелы внутри чисел не допускаются, а для отделения целой части числа от дробной используется точка. Можно опустить нулевую дробную или целую части числа, но не обе сразу, например, 1.0 « 1. или 0.5 « .5 .

В любом случае при использовании вещественных констант наличие так называемой десятичной точки обязательно.

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

Символьная константа – это символ, заключенный в одинарные кавычки: 'A', 'х' (тип char занимает в памяти один байт).

Также используются специальные последовательности символов – управляющие (escape) последовательности:

\n – новая строка;
\t – горизонтальная табуляция;
\b – шаг назад;
\r – возврат каретки;
\v – вертикальная табуляция;
\f – перевод формата (переход на новую строку);
\\ – обратный слеш;
\' – апостроф;
\" – кавычки;
\0 – символ «пусто», не путать с символом ‘0’.

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

При присваивании символьным переменным значений констант значения констант заключаются в апострофы, например:

char ss = ‘У’;

Текстовые символы непосредственно вводятся с клавиатуры, а специальные и управляющие – представляются в исходном тексте парами символов, например: \\ , \' , \" .

Примеры символьных констант: 'А', '9', '$', '\n'.

Строковые константы

Строковая константа представляет собой последователь­ность символов кода ASCII, заключенную в кавычки (”). Во внутреннем представлении к строковым константам добавляется пустой символ '\0', который не является цифрой 0, на печать не выводится (в таблице кодов ASCII имеет код = 0) и является признаком окончания строки.

Кавычки не являются частью строки, а служат только для ее ограничения. Строка в языке Си представляет собой массив, состоящий из символов. Внутреннее представление константы "1234ABC": '1' '2' '3' '4' 'A' 'B' 'C' '\0' .

Примеры строковых констант:

"Система", "\n\t Аргумент \n", "Состояние \"WAIT \" " .

Строковые константы еще называют строковыми литералами.

В конец строковой константы компилятор автоматически помещает нуль-символ.

Длинную строковую константу можно разбить на несколько, используя символ переноса – обратный слеш (\). Например:

“Вы поступили и \

учитесь на факультете информационных технологий \

Белорусского государственного университета \

информатики и радиоэлектроники”

Компилятор Си воспримет такую запись как единое целое, игнорируя символы обратного слеша.

ГЛАВА 4. Обзор операций

Операции, выражения

Выражения используются для вычисления значений (определенного типа) и состоят из операндов, операций и скобок. Каждый операнд может быть, в свою очередь, выражением или одним из его частных случаев – константой или переменной. Операнды задают данные для вычислений.

Знак операции – это один или более символов, определяющих действие над операндами, т.е. операции задают действия, которые необходимо выполнить. Внутри знака операции пробелы не допускаются.

Операции делятся на унарные, бинарные и тернарные – по количеству участвующих в них операндов, и выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки.

Большинство операций выполняются слева направо, например, a+b+c ® ® (a+b)+c. Исключение составляют унарные операции, операции присваивания и условная операция (?:), которые выполняются справа налево.

В языке Си используются четыре унарные операции, имеющие самый высокий приоритет, их часто называют первичными:

– операция доступа к полям структур и объединений при помощи идентификаторов «.» – точка;

– операция доступа к полям структур и объединений при помощи указателей «–>» – стрелка;

– операция [ ] индексации, используемая при декларации массива и обращении к его элементам;

– операция ( ) обращения к функции.

Первичные операции будут рассмотрены в соответствующих разделах.

Полный список операций с указанием их приоритетов приводится в прил. 2.

Арифметические операции

Обозначения арифметических операций:

+ (сложение); – (вычитание); / (деление, для int операндов – с отбрасыванием остатка); * (умножение); % (остаток от деления целочисленных операндов со знаком первого операнда – деление «по модулю»).

Операндами традиционных арифметических операций (+ – * /) могут быть константы, переменные, обращения к возвращающим значения функциям, элементы массивов, любые арифметические выражения, указатели (с ограничениями).

Порядок выполнения действий в арифметических выражениях следующий: выражения в круглых скобках; операции *, /, %; операции +, –.

Унарные операции «знак числа» (+, –) обладают самым высоким приоритетом и определены для операндов числовых типов (имеющих числовой результат), при этом «+» носит только информационный характер, «–» меняет знак операнда на противоположный (неадресная операция).

Операции *, /, % обладают высшим приоритетом над операциями +, –, поэтому при записи сложных выражений нужно использовать общепринятые математические правила: Константы вещественного типа - student2.ru « x+y*z–a /(b+с) , т.е. использовать круглые скобки.

Операция присваивания

Формат операции присваивания:

Операнд_1 = Операнд_2 ;

Операндом_1 (левый операнд) может быть только переменная. Левый операнд операции присваивания получил название L–значение, (L–value, Left–value) – адресное выражение. Так в Си называют любое выражение, адресующее некоторый участок оперативной памяти, в который можно записать некоторое значение. Переменная – это частный случай адресного выражения.

Операндом_2 (правый операнд) могут быть: константа, переменная или любое выражение, составленное в соответствии с синтаксисом языка Си. Правый операнд операции присваивания назвали R–значение, (R–value, Right–value).

Присваивание значения в языке Cи, в отличие от традиционной интерпретации, рассматривается как выражение, имеющее значение левого операнда после присваивания. Таким образом, присваивание может включать несколько операций присваивания, изменяя значения нескольких операндов, например:

int i, j, k;

float x, y, z;

...

i = j = k = 0; « k = 0, j = k, i = j;

x = i + (y = 3) – (z = 0); « z = 0, y = 3, x = i + y – z;

Примеры недопустимых выражений:

– присваивание константе: 2 = x + y;

– присваивание функции: getch() = i;

– присваивание результату операции: (i + 1) = 2 + y;

Наши рекомендации