Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word.docx
Скачиваний:
21
Добавлен:
17.03.2015
Размер:
75.76 Кб
Скачать

31)

  • 1) char - символьный;

  • int - целый;

  • float - вещественный;

  • double - вещественный двойной точности;

  • void - не имеющий значения.

  • 2) вещественные, например 123.456, 5.61е-4. Они могут снабжаться суффиксом F (или f), например 123.456F, 5.61e-4f;

  • целые, например 125;

  • короткие целые, в конце записи которых добавляется буква (суффикс) H (или h), например 275h, 344H;

  • длинные целые, в конце записи которых добавляется буква (суффикс) L (или l), например 361327L;

  • беззнаковые, в конце записи которых добавляется буква U (или u), например 62125U;

  • восьмеричные, в которых перед первой значащей цифрой записывается нуль (0), например 071;

  • шестнадцатеричные, в которых перед первой значащей цифрой записывается пара символов нуль-икс (0x), например 0x5F;

  • символьные - единственный символ, заключенный в одинарные кавычки, например 'О', '2', '.' и т.п. Символы, не имеющие графического представления, можно записывать, используя специальные комбинации, например \n (код 10), \0 (код 0). Эти комбинации выглядят как два символа, хотя фактически это один символ. Так же можно представить любой двоичный образ одного байта: '\NNN', где NNN - от одной до трех восьмеричных цифр. Допускается и шестнадцатеричное задание кодов символов, которое представляется в виде: '\х2В', '\хЗ6' и т.п.;

  • строковые - последовательность из нуля символов и более, заключенная в двойные кавычки, например: "Это строковая константа". Кавычки не входят в строку, а лишь ограничивают ее. Строка представляет собой массив из перечисленных элементов, в конце которого помещается байт с символом '\0'. Таким образом, число байтов, необходимых для хранения строки, на единицу превышает число символов между двойными кавычками;

  • константное выражение, состоящее из одних констант, которое вычисляется во время трансляции (например: а=60+301);

  • типа long double, в конце записи которых добавляется буква L (или l), например: 1234567.89L.

3) Переменная — идентификатор, представляющий собой изображение изменяемого объекта. C технической точки зрения, переменная — это область памяти, в которую могут помещаться различные значения.

Любая переменная до ее использования в программе на языке Си должна быть объявлена, то есть для нее должны быть указаны тип и имя (идентификатор).

4) В языке Си существует четыре класса памяти: автоматический (automatic), регистровый(register), статический(static) и внешний(external).

Автоматические переменные в программе можно описать так:

                                         auto A; auto char c1; auto int x= 125;

Если мы этим не пользовались, то только потому что опущенный описатель      auto используется по умолчанию. Зона действия автоматической переменной ограничена блоком или функцией, где она описана. Она начинает существовать после обращения к функции и исчезает после выхода из нее. Таким образом автоматические переменные не занимают область в памяти. Значение автоматической переменной не может быть изменено другими функциями и в этих функциях может находится переменные с таким же именем. Проанализируем результаты работы следующей программы.

Внешние переменные вводятся   как нечто противоположное автоматическим. Это глобальные переменные и к ним можно обращаться именами из любой функции. Поскольку внешеие переменные доступны везде, их можно использовать для связи между функциями, не пренебрегая механизму формальных параметров. Внешние переменные могут определятся вне квкой-либо функции;

Статические переменные, подобно автоматическим, локальны в той функции или блоке, где они описаны. Разница заключается в том, что статические переменные не исчезают, когда функция (блок) завершает работу, и их значения сохраняются для последующих вызовов функции. Описание статических переменных выглядит так:

   static char c; static int a=1;

Регистровые переменные объявляются в программе с помощью ключевого слова register и по замыслу автора языка Си должны хранится в сверх быстрой памяти ЭВМ - регистрах. Используются аналогично автоматическим переменным. Целесообразность их применения для увелечения быстродействия программы представляется в большинстве случаев сомнительной.

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

Операция присваивания обозначается символом = и выполняется в 2 этапа: - вычисляется выражение в правой части; - результат присваивается операнду, стоящему в левой части:

объект = <выражение>;

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

Основные бинарные операции, расположенные в порядке уменьшения приоритета: -умножение—*; -деление—/; -сложение—+; -вычитание—-; -остаток от целочисленного деления — %. Основные унарные операции: - инкрементирование (увеличение на 1) — ++; - декрементирование (уменьшение на 1 — --; - изменение знака — -.

33)

Логические операции

Логические операции оперируют с битами, каждый из которых может принимать только два значения: 0 или 1.

Основные побитовые логические операции в языке Си: - конъюнкция (логическое И) — & - бинарная операция, результат которой равен 1 только когда оба операнда единичны (в общем случае - когда все операнды единичны); - дизъюнкция (логическое ИЛИ) — | - бинарная операция, результат которой равен 1 когда хотя бы один из операндов равен 1; - инверсия (логическое НЕ) — ~ - унарная операция, результат которой равен 0 если операнд единичный, и равен 1, если операнд нулевой; - исключающее ИЛИ — ^ - бинарная операция, результат которой равен 1, если только один из двух операндов равен 1 (в общем случае если во входном наборе операндов нечетное число единиц).

Операции отношения

Основные операции отношения: - эквивалентно — == (проверка на равенство); - не равно — != (проверка на неравенство); - меньше — <; - больше — >; - меньше или равно — <=; - больше или равно — >=. Операции отношения используются при организации условий и ветвлений. Результатом этих операций является 1 бит, значение которого равно 1, если результат выполнения операции - истина, и равно 0, если результат выполнения операции - ложь.

Приведенные выше операции отношения могут быть связаны логическими соотношениями: - И — && - требуется одновременное выполнение всех операций отношения; - ИЛИ — || - требуется выполнение хотя бы одной операции отношения; - НЕ — ! - требуется невыполнение операции отношения.

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

Язык С++ включает операцию, которая может использоваться вместо оператора if else. Она называется условной операцией и записывается как ? :

Формат 1:

Выражение1 ? Выражение2 : Выражение3

Это единственная операция С++, которая требует трех операндов.

Описание алгоритма формата 1:

Если выражение1 истинно, то значением всего условного выражения буде значение выражения2. в противном случае значением всего выражения будет выражение3.

Пример 1:

5 > 3 ? 10 : 12//т.к. 5 > 3 истинно, поэтому значение всего выражения – 10, а если было бы ложно то результат равен 12;

3 == 9 ? 25 :18 //т.к. 3 == 9 ложно, поэтому значение всего выражения – 18, а если бы было истина то результат равен 25;

Формат 2:

a = (B) ? s1:s2;

Где

a - идентификатор переменной левой части оператора присвоения.

B - условие принятия решения, выражение любого типа (круглые скобки вокруг условия не обязательны ).

s1:s2 - выражения с помощью которых вычисляется значение a.

Описание алгоритма формата 2:

Вычисляем значение В;

· Если В! = 0 , т.е. true, то вычисление значения переменной a производится с помощью выражения s1.

· Если В = 0 , т.е. false, то с помощью выражения s2.

 

Если типы, переменной левой части оператора присвоения и результата выраженийs1 и s2 разные, то тип результата вычисления выражения преобразуется к типу переменной a в соответствии с правилами преобразования.