Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогание..docx
Скачиваний:
1
Добавлен:
25.04.2019
Размер:
34.98 Кб
Скачать

9.Операции в языке Си. Примеры.

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

Унарные: ++(увеличение на 1), --(уменьшение на 1), sizeof(размер), ~(поразрядное отрицание), !(логическое отрицание), -(унарный минус), (унарный плюс), &(взятие адреса), *(разадресация), new(выделение памяти), delete(освобождение памяти), (type)(преобразование типа). Бинарные и тренарные: *(умножение), /(деление), %(остаток от деления), +(сложение), -(вычитание), <<(сдвиг влево), >>(сдвиг вправо), <(меньше), >(больше), <=(меньше или равно), >=(больше или равно), ==(равно), !=(не равно); &(поразрядное И), &&(логическое И), ^(поразрядное исключающее ИЛИ), | (поразрядное ИЛИ), ||(ИЛИ); ? : (условная операция), =(присваивание), *=(умножение с присваиванием), /=(деление с присваиванием), %=(остаток от деления с присваиванием), +=(сложение с присваиванием), -=(вычитание с присваиванием),

10.Выражения. Правила приведения типов в языке Си. Примеры.

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

(f+23)*67. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операции используются круглые скобки. Если в одном выражении записано несколько операций одинакового приоритета, унарные операции, условная операция и операция присваивания выполняются справа налево – остальные слева направо. Результат вычисления выражения характеризуется значением и типом. В выражение могут входить операнды различных типов .Если операнды имеют один тип то и результат выполнения выражения будет иметь тот же тип. Если операнды разного типа, то перед вычислением выполняются преобразования типов по определенным правилам, обеспечивающих преобразование более коротких типов в более длинные для сохранения значимости и точности. Преобразования бывают двух типов: 1) изменяющие внутреннее представление величин (с потерей точности или без потери точности); 2) изменяющие только интерпретацию внутреннего представления. К первому типу относятся преобразования целого числа в вещественное (без потери точности) и наоборот (возможно, с потерей точности), ко второму – преобразование знакового целого к беззнаковому. В любом случае величины типов char, signed char, unsigned char, short int и unsigned short int преобразуются в тип int, если он может представить все значения или в unsigned int в противном случае. После этого операнды преобразуются к типу наиболее длинному из них и он используется как тип результата.

11.Операторы инкремента, декремента, присваивания. Примеры.

Инкремент a++ - увеличение на 1. Декремент a-- - уменьшение на 1. Эти операции имеют две формы записи: префиксную и постфиксную. В префиксной форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется. Операндом инкремента является значение L-value. Так обозначается любое выражение, адресующее некоторый участок памяти, в который можно занести значение. Название произошло т операции присваивания, поскольку именно её левая часть определяет в какую область памяти будет занесен результат операции. Переменная – частный случай L-значения.

Пример.

#include <stdio.h>

Int main{

Int x=3, y=3;

printf (“Значение перфиксного выражения: %d\n”, ++x ); значение префиксного выражения:4;

printf (“Значение постфиксного выражения:%d\n”, y++); значение постфиксного выражения:3;

printf (“Значение х после приращения:%d\n”, x); значение х после приращения: 4;

printf (“Значение у после приращения:%d\n”, y); значение у после приращения:4

return 0;

}