[英]error: lvalue required as increment operand
我嘗試了以下代碼:
int a = ++2;
我知道無法修改常量,但我無法理解編譯器輸出的錯誤:
* error: lvalue required as increment operand
究竟是什么意思?
當一個表達式在內存中指定一個可修改的位置時,它被認為是一個“左值”。 修改值的運算符要求其操作數是左值。
賦值運算符要求左側是左值。 這就是這個行話的起源。 后綴和前綴遞增/遞減運算符對其單個操作數也有此要求。
一個左值表達式可能不僅僅是一個變量名,還可能是一個更復雜的表達式,例如:
*(p + 2); // the unary * operator produces an lvalue
*(p + 2) = 5; // so that this is possible
(*(p + 2))++; // or this
它的確切意思是
++
根據定義是遞增運算符(遞增的運算符)2
是增量運算符,它不是左值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.