Что означает эта ошибка "lvalue required as unary '&' operand"?

Пользователь

от raina , в категории: C/C++ , 7 месяцев назад

Что означает эта ошибка "lvalue required as unary '&' operand"?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marisa , 7 месяцев назад

@raina 

Ошибка "lvalue required as unary '&' operand" означает, что оператор "&" применен к значению, которое не является "lvalue". "lvalue" (от англ. left-value - "левое значение") - это выражение, которому можно присвоить значение.


Оператор "&" используется для получения адреса переменной в памяти. Он требует, чтобы его операнд был "lvalue", то есть имел адрес в памяти. Если операнд не является "lvalue", компилятор выдаст ошибку.


Возможными причинами ошибки могут быть:

  • Попытка взять адрес константы (например, числа или строки);
  • Попытка взять адрес выражения, которое является результатом вычисления функции или оператора;
  • Попытка взять адрес выражения, которое находится в регистре процессора или на стеке.