MyTetra Share
Делитесь знаниями!
Краткое объяснение, что такое Lvalue и Rvalue в языке C++
Время создания: 15.02.2024 13:00
Текстовые метки: c++, lvalue, rvalue, объяснение
Раздел: Компьютер - Программирование - Язык C++ (Си++)
Запись: xintrea/mytetra_syncro/master/base/1707991234nda7nq00wu/text.html на raw.github.com

В русскоязычной литературе lvalue называют леводопустимым выражением. А rvalue , соответственно, праводопустимым выражением. В обеих случаях имеется в виду расположение относительно знака равества "=".


Lvalue: Те выражения, которым можно присваивать, называются lvalue в C, C++ и многих других языках (это сокращение от «left value», т. е. слева от знака равенства). Остальные выражения считаются rvalue. Имена переменных очевидным образом являются lvalue, но не только они. Выражения:



a

a[i + 2]

some_struct.some_field

*ptr

*(ptr + 3)



— это все тоже lvalue.


Другими словами, lvalue - это нечто, чему можно присвоить. Т. е. это некое фиксированное место в памяти, куда можно что-то положить.


Еще вариант: по мнению А. В. Столярова, результат вычисления выражения lvalue - не просто представляет собой значение, а идентифицирует некую область памяти, в которой располагается значение. Простейшим примером леводопустимого выражения является имя переменной, но этим дело не ограничивается.



Rvalue: это выражения, которым присваивать нельзя. Нельзя написать так:


int a=5;

10=a; // Ошибка


Здесь во второй строке 10 - это Rvalue. И такому выражению (выражению 10) невозможно ничего присвоить.


Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования