Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л_4_Операции_и_выражения.doc
Скачиваний:
10
Добавлен:
05.11.2018
Размер:
660.99 Кб
Скачать

Арифметические операции над переменными символьного типа

Пример демонстрирует возможность выполнения арифметических операций над переменными символьного типа (прописные буквы переводятся в строчные):

#include <iostream>

#include <conio.h>

using namespace std;

int main() {

char n_reg, v_reg, c;

c='b' + '%' - '!'; //f

cout << c << endl; //102(код 'f') = 98(код 'b')+37(код '%')-33(код'!')

cout << "Input char \'A\' - \'Z\' " <<endl;

cin >> v_reg;

n_reg = v_reg+32; //32 – значение, на которое отдичаются коды //прописных и строчных латинских букв

cout << v_reg << " " << n_reg << '\n';

_getch();

return 0;

}

Операции инкремента и декремента

тип операции

операция

содержание

примеры

префиксная

++x

увеличение значения операнда на 1 до использования его значения

a=1; q = 2* ++a; a=2; q=4

--x

уменьшение значения операнда на 1 до использования его значения

a=1; q = 2* --a;  a=0; q=0

постфиксная

x++

увеличение значения операнда на 1 после использования его значения

a=1; q= 2*a++;  q=2; a=2;

x--

уменьшение значения операнда на 1 после использования его значения

a=1; q= 2*a--;  q=2; a=0

Примеры использования:

1. k = a + (i++) – d * (--j); равносильно выполнению операций в следующей последовательности:

--j; k=a + i – d * j; i++;

2. int i=2, j=0;

i++;

cout << i << endl; // 3

--i;

cout << i << endl; // 2

3.

int main()

{ float x=2;

x=++x*4; cout << x << endl; // 12

x=2;

x=x++*4; cout << x << endl; // 9

x=2;

x=--x*4; cout << x << endl; // 4

x=2;

x=x--*4; cout << x << endl; // 7

return 0;

}

4.

int main()

{

int var = 10;

cout << var << endl; // var = 10

var *= 2; // var = 20

cout << var-- << endl; // 20

cout << var << endl; // var = 19

return 0;

}

Правило:

  1. при самостоятельном использовании префиксная и постфиксная операции выполняются одинаково (++k, k++);

  2. в выражениях префиксная и постфиксная операции различаются:

  • в случае префиксной операции сначала изменяется значение переменной, перед которой стоит операция, а затем оно используется;

  • в случае постфиксной операции сначала используется старое значение переменной, после которой стоит операция, затем оно изменяется;

  1. не применяют операции к переменной, которая входит в выражение более одного раза или присутствует более чем в одном аргументе функции (k=a/2 + 5 * (1 + a++); printf (“……..”, a, a*a++);).

  2. операции применяют только к переменным, операнд не может быть константой;

  3. операндом может быть только леводопустимое выражение: ++(j+k) – неверная запись.