Понятие выражения. Операция присваивания. Преобразование и приведение типов

Понятие выражения. Операция присваивания. Преобразование и приведение типов


Содержание


1. Что называется выражением в языках программирования?

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

Примеры выражений.

a*8+5
Math::Sqrt(x)+Math::Sin(x+2)
sigma + gamma/20.0

2. Какой общий вид операции присваивания? Примеры

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

В языке C/C++ операция присваивания обозначается символом ‘=’ (равно).

Общий вид операции присваивания:

переменная = выражение;

где

  • переменная – имя переменной, которой присваивается значение выражения;
  • выражение – некоторое выражение, которое может быть использовано согласно синтаксису языка C/C++.

Примеры операции присваивания.

a = 8;
b = a + Math::Sqrt(x)+Math::Sin(x+2);
sigma = (double) (2.0 / 8);

3. Как используется операция присваивания при инициализации переменных? Примеры

Общий вид операции присваивания при инициализации переменных:

тип имя_переменной = выражение_или_значение;

где

  • тип – тип переменной, которая инициализируется;
  • выражение_или_значение – значение выражения или константная величина. Если используется значение выражения, то переменные, входящие в это выражение должны быть уже объявлены на данный момент (см. пример).


Примеры инициализации переменных.

...

// Инициализация переменных
int a = 8, b = 25;
double c = 3.550093;
bool f = false;
char sym = 'A';

// Инициализация переменных с выражением
float x = 3.5;
float y = x + 2.8;
float z = x*x + y*y*y;
float zz = Math::Sqrt(z+5.0);

...

4. Как осуществляется преобразование типов в выражениях?

Если в выражении встречаются два операнда разных типов, то действуют следующие правила:

  • все операнды преобразуются к типу самого наибольшего операнда. Процесс такого преобразования называется расширением типа (integral promotion);
  • все типы char и short int преобразуются к типу int. Процесс такого преобразования называется целочисленным расширением (integer promotion);
  • если один из операндов имеет тип double, тогда любой другой операнд приводится к типу double. Даже, в случае с типом char, происходит приведение к типу double;
  • после преобразования оба операнда имеют одинаковый тип, который есть типом результата операции.

Ниже приведены примеры автоматического преобразования типов.

Преобразование между типами char и int:

char c;
int d;

c = 'A';
d = c; // d = 65

d = 67;
c = d; // c = 'C'

Преобразование между типами int и float:

int d = 28;
float x;

x = d; // x = 28.0 - тип float
d = 5.0 + 5; // d = 10 - тип int

Преобразование между типами float и double

float f;
double d;
int size;

f = 2.54f;
d = f; // d = 2.54 - типа double
d = 2.0f + 8.5; // результат типа double

5. Как осуществляются преобразования, которые связаны с типом bool?

Если выражение содержит целочисленный тип, то значения типа bool автоматически превращаются в целые числа 0 и 1. Значению 0 соответствует значение false. Значению 1 или ненулевому значению соответствует значение true.

Пример. Фрагмент кода, который демонстрирует преобразование для типа bool

bool b;
int a;

a = 0;
b = a; // b = False

a = 1;
b = a; // b = True

a = 50;
b = a; // b = True

6. Какой общий вид операции приведения типа?

Общий вид операции приведения типа:

(тип) выражение

где

тип – тип, к которому нужно привести результат вычисления выражения.

Примеры использования операции приведения типов.

int a;
float x;

a = 5;
x = a/2; // x = 2.0
x = (float)(a/2); // x = 2.0
x = (float)a/2; // x = 2.5 - типа float
x = a/2.0; // x = 2.5 - типа float

x = (int) (8/3.0);   // x = 2
x = (float) (8/3.0); // x = 2.666667

Рекомендация. С целью получения необходимой точности при вычислении выражений, содержащих целочисленные и вещественные значения, желательно всегда делать операцию приведения типа к типу переменной, которой присваивается значение.

7. Какие особенности применения круглых скобок и символов «пробел» в выражениях?

Чтобы улучшить читабельность, в программах используются:

  • символы «пробел»;
  • символы табуляции (клавиши Tab);
  • круглые скобки ( ). Круглые скобки позволяют также повысить приоритет операций, которые помещены в них. Количество круглых скобок не влияет на скорость вычисления выражения.


Связанные темы