Леводопустимые и праводопустимые выражения

Обновлено: 22.12.2024

Понятия леводопустимых и праводопустимых выражений.

Леводопустимое выражение – это конструкция для обращения к некоторому участку памяти, куда можно поместить значение (lvalue, l-значение).

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

Примеры леводопустимых выражений:

1) имена скалярных переменных;

2) имена элементов массивов;

3) имена указателей;

4) ссылки на lvalue(синонимыlvalue);

5) имена элементов структурированных данных:

имя структуры . имя элемента;

указатель на структуру -> имя элемента элемента;

6) выражения с операцией '*' - разыменования указателя:

int i, *p =&i; *p=7;

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

7) вызовы функций возвращающих ссылки на объекты программы.

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

Примеры праводопустимых выражений:

1) любое арифметическое, логическое выражение;

2) имя константы;

3) имя функции (указатель константа);

4) имя массива (указатель константа);

5) вызов функции, не возвращающей ссылки;

В дальнейшем рассмотрении, в качестве lvalueбудет рассматриваться переменная как объект программы.

Кроме типов для переменных явно или по умолчанию определяются:

· класс памяти (задает размещение объекта);

· область действия, связанного с объектом идентификатора (имени);

· продолжительность существования объекта;

· тип компоновки (связывания).

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

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

Читайте также: