Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 02_Операции и выражения (1)

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
225.53 Кб
Скачать

Задание

Определите значение переменной x

int a = 0; int b = 5; int x = 2;

x = 4 - (++a) + (float)b/x;

31

 

Явные и неявные приведения типов

x = 4

- (++a) +

(float)b / x;

операция

2

4

0

5

2

неявное

 

 

 

 

 

 

 

1

5.0

 

приведение

 

 

2.0

типа

 

 

 

 

 

 

 

a:1

 

2.5

операнд

 

 

 

5.5

 

 

3

 

 

 

 

 

 

 

 

 

 

возвращаемое

 

 

3.0

 

 

значение операции

 

 

 

 

 

 

 

5.5

 

 

a:1

 

 

5

 

 

побочный

32

5

x:5

 

 

эффект

 

 

операции

Это надо помнить!

Простейший оператор языка Си состоит из выражения, заканчивающегося точкой с запятой

Некоторые операции могут изменять свои операнды

Деление целых чисел всегда дает в результате целое число

33

Ошибки при компиляции для VS 2008 Russian

Невозможно преобразовать '<тип 1>' в '<тип 2>'

- вы пытаетесь использовать операцию с неподходящими типами данных (тип 1 использовали вы, в то время как надо было использовать тип 2)

'=': левый операнд должен быть левосторонним значением — слева от операции присваивания стоит что-то, чему нельзя присваивать (не l-value-выраже- ние)

Для '++' требуется левостороннее значение

операция ++ (--) должна выполняться только над тем, 34 что можно изменить (l-value-выражение)

Ошибки при компиляции для VS 2005 English

can not convert '<тип 1>' to '<тип 2>' - вы пытаетесь использовать операцию с неподходящими типами данных (тип 1 использовали вы, в то время как надо было использовать тип 2)

'=': left operand must be l-value — слева от операции присваивания стоит что-то, чему нельзя присваивать (не l-value-выражение)

'++' needs l-value — операция ++ (--) должна выполняться только над тем, что можно изменить (l-

35 value-выражение)