TL;DR: «lvalue» означает либо «выражение, которое может быть помещено в левую часть оператора присваивания», либо означает «выражение, имеющее адрес памяти». « rvalue» определяется как «все остальные выражения».
Что такое lvalue и rvalue в C на примере?
Например, присваивание ожидает lvalue в качестве левого операнда, поэтому допустимо следующее: int i=10; Но это не так: int i; 10=я; Это потому, что у меня есть адрес в памяти и это lvalue. В то время как 10 не имеет идентифицируемой ячейки памяти и, следовательно, является rvalue.
В чем разница между rvalue и lvalue?
lvalue относится к объекту, который сохраняется за пределами одного выражения. Значение r - это временное значение, которое не сохраняется за пределами выражения, в котором оно используется.
Что такое rvalue в языке C?
L-значение: «l-значение» относится к ячейке памяти, которая идентифицирует объект. l-значение может отображаться либо как левая, либо как правая часть оператора присваивания (=). l-значение часто представляет собой идентификатор.
Что такое ссылки rvalue?
Ссылки Rvalue - это небольшое техническое расширение языка C++ Ссылки Rvalue позволяют программистам избежать логически ненужного копирования и обеспечить идеальные функции пересылки. В первую очередь они предназначены для помощи в разработке более производительных и надежных библиотек.