Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие ОАиП.doc
Скачиваний:
11
Добавлен:
25.04.2019
Размер:
2.63 Mб
Скачать

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

Бинарные операции отношений используются для вычисления соотношения между операндами. Операция вырабатывает значение 1(true) или 0 (false). Типом результата является int. Операнды могут быть целого, плавающего или адресного типов. Типы первого и второго операндов могут различаться.

#include <stdio.h>

#include <conio.h>

void main()

{ int i, j, k, l, m, n;

i=10; j=15; k=10;

printf("\ni=%d, j=%d, k=%d, (i>j)=%d, (i<j)=%d ",i, j, k, i>j, i<j);

printf("\n(i>=k)=%d, (j<=k)=%d, (j==k)=%d, (j!=k)=%d\n",i>=k,j<=k,

j==k,j!=k);

}

Результатом выполнения программы будет:

i=10, j=15, k=10, (i>j)=0, (i<j)=1

(i>=k)=1, (j<=k)=0, (j==k)=0, (j!=k)=1.

Инкрементные и декрементные операции

Операция инкрементирования (увеличения ++) и декрементирования (уменьшения --) значения операнда. Операнд должен быть целого, плавающего или адресного типа. Операнды целого или плавающего типа преобразуются путем сложения (++) или вычитания (--) единицы. Тип результата соответствует типу операнда. Операнд адресного типа инкрементируется или декрементируется размером объекта, который он адресует. Инкрементированный указатель адресует следующий объект, а декрементированный указатель – предыдущий.

Существуют две возможности использования операции: когда знак ++ (--) находится слева от переменной - "префиксная" форма, и справа - "постфиксная" форма. По внешнему виду операция аналогична простой операции сложения (вычитания). Каковы же преимущества операции ++ (--) по сравнению с +( -).

Во-первых, более компактная форма записи. Например:

i=2; j=3; i=2; j=3;

while(i>12) while(i++>12)

{ j=j*i; { j=j*i;

printf(”j= %d”,j) printf(”j= %d”,j);

i=i+1; }

}

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

Если операция является префиксом своего операнда, то операнд инкрементируется или декрементируется перед его использованием в выражении, а если постфиксом – после его использования

while(++i>12) // в начале увеличение значения i, затем сравнение

while(i++>12) // в начале сравнение, затем увеличение значения i

Операция sizeof

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

sizeof(name);

где name - или идентификатор или имя типа. Имя типа не может быть void. Значением выражения sizeof является размер памяти в байтах, соответствующий поименованному идентификатору или типу.

Когда операция sizeof применяется к идентификатору массива, то результатом является размер всего массива в байтах, а не размер указателя, соответствующего идентификатору массива.

#include <stdio.h>

#include <conio.h>

void main()

{ int i,j;

double d;

char c;

i=sizeof(i); j=sizeof(d);

printf("\nразмер i(int)=%d, c(char)=%d, float=%d, d(double)=%d “,

i,sizeof(c),sizeof(float),j);

}

Результатом выполнения программы будет:

размер i(int)=2, с(char)=1, float=4, d(double)=8,