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

11. Логические операции и операции отношения. Операции присваивания

Эти операции участвуют в формировании выражений, к-рые могут принимать только два значения 1(True) или 0(False). Операции отношения >, >=, <, <= имеют одинаковый приоритет.

Операция > дает 1 ,если операнд слева больше операнда справа, и 0- если наоборот.

Более низкий приоритет имеют операции = = , !=

Приоритет операций отношения больше арифметических операций .

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

&&-дает 1, если оператор слева и операнд справа = логической 1

| | - дает 1, если оператор слева или операнд справа = логической 1

! (не)- дает 1, если оператор справа от операции равен 0

Последовательность логических операций выполняется до тех пор, пока не станет известна истинность или ложность результатов.

В языке Си операции присваивания имеют такие особенности:

1)кроме пересылки значения переменной, она имеет еще и результат выполнения, совпадающий с присваиваемым значением. Поэтому Си допускает запись в одном предложении нескольких операций присваивания. Типом и значением результата присваивания явл тип int a,b,c; и значение его левого операнда. a=b=c=0 ;

2)наличие комбинированой операции присваивания I=I+2 или I+=2

12.Условное выражение. Операция Sizeof. Операции приведения типов type.

В Си имеется тернарная операция, наз операцией условия или условным выражением, обозначаемая “ ?:

If (a>b) z=a;

Else z=b;

Можно записать как z = (a>b) ? a : b

выр1?(выр2):(выр3)

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

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

Операция Sizeof

Результатом Sizeof явл размер в байтах типа или переменных. Применение этой операции в массивах возвращает число байтов, необходимое для размещения всех элементов в массиве.

Int I,r;

Char c;

r = sizeof(int) ; [2]

r = sizeof(char); [1]

r = sizeof I; [2]

Операции приведения типов type.

В Си позволяется задавать явное приведение типов, используя унарную операцию type.

выр.(любой тип Си)

Эта операция приводит выражение к типу справа

Sqrt((double)n);

Операция приведения типов не изменяет типа аргумента,а лишь вырабатывает выражение этого типа.

13.1,Преобразование типов в выражения. Правила приведения типов.

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

Правила приведения типов.

1.Операнды разных типов приводятся к старшему, т.е. более длинному типу.

Порядок старшинства типов: longdouble, double, float, unsigned long, longint, unsigned, int, short, char.

2.Если в выражении нет беззнаковых операндов, то действуют такие правила:

1)если один из операндов принадлежит типу longdouble, то другой приводится к типу longdouble.

2) если один из операндов принадлежит типу double, то другой приводится к типу double.

если один из операндов принадлежит типу int, то другой приводится к типу int. если один из операндов принадлежит типу float, то другой приводится к типу float.

3)операнды char, short, приводятся к int

4) операнды long приводятся к long.

При операции присваивания , результат приводится к тпу