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

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

Операция присваивания ( = ). В результате выполнения этой операции переменная, стоящая слева от знака "=", принимает значение выражения, расположенного справа. Отличительной чертой операции присваивания в языке С является то, что она может быть использована в одном выражении более одного раза. Например:

void main(void)

{ int i,j,k;

i=j=k=23;

}

В этом примере присваивания выполняются справа налево: сначала переменная k принимает значение 23, затем j и, наконец, i принимают то же значение.

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

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

i=j+k;

printf("%d",j+k);

Операция вычитания (-). В результате выполнения этой операции переменная получает значение разности чисел, стоящих соответственно слева и справа от знака "-":

i=j-k;

printf("%d",j-k);

Операция изменения знака (-). Знак "-" может использоваться для задания или изменения алгебраического знака некоторой величины (выражения):

i=-10;

i=-(j-k);

n=-j;

Операция умножения (*). В результате выполнения этой операции вычисляется произведение двух или более операндов.

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

void main(void)

{ int i;

float k;

i=6/4; // (результат = 1)

k=7./4.; // (результат = 1.75)

k=6/4.; // (результат = 1.25)

}

Операция деления по модулю (%). Операция используется в целочисленной арифметике. В результате получается остаток от деления. Например, в результате 14%4 получаем 2.

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

Обычные арифметические преобразования осуществляются следующим образом:

- операнды типа float преобразуются к типу double;

- если один операнд типа double, то второй операнд преобразуется к типу double;

- любые операнды типов char или short преобразуются к int;

- любые операнды типов unsigned char или unsigned short преобразуются к типу unsigned int;

- если один операнд типа unsigned long, то второй операнд преобразуется к типу unsigned long;

- если один операнд типа long, то второй операнд преобразуется к типу long;

- если один операнд типа unsigned int, то второй операнд преобразуется к unsigned int.

Операндами операции % должны быть целые числа. Остальные операции выполняются над целыми и плавающими операндами. Типы первого и второго операндов могут отличаться. Арифметические операции выполняют обычные арифметические преобразования операндов. Типом результата является тип операндов после преобразования.

#include <stdio.h>

#include <conio.h>

void main()

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

float f,f1;

char с,c1;

clrscr();

i=12;

k=32767; // максимальное значение для int 32767, при увеличении

k=k+1; // значения переменной k происходит переполнение

c=’а’; // с присваивается значение ASCII кода символа а

с=с+1; // переход к следующей букве (б)

printf(" i=%d, j = %d k=%d c=%с c=%d i-5=%d i % 3%d”,

i,j=i+1,k,c,c,i-5,i%3);

}

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