犀牛書第六版P67頁關于左值有這樣一句描述:表達式只能出現在賦值運算符的左側然后舉出例子在javascript中,變量、對象屬性和數組元素均是左值但是例子中的幾個值均可以放在表達式右邊于是去查百度,百度中關于左值的描述定義如下:左”(left)的原意是指可以放在賦值符號“=”的左邊,但其實也表示能作為&和++等操作符的操作數在描述上的區(qū)別就是左值是可以在表達式左邊還是只能在表達式左邊呢?希望其他非前端開發(fā)人員也能給出關于這個概念的見解,不勝感激
4 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
int a;
舉幾個例子吧
a = 5; //把(int)5存入a所具有的地址
int *pa = &a;//取a地址
-
int& foo(int &a) {...return a;} //一個返回引用的函數
int *pa2 = &foo(a); //取返回對象(a)的地址
以上代碼都以變量a
舉例。
當一個對象被用作右值時,用的是其中的值(內容);
當一個對象被用作左值時,用的是它的地址(身份)。
(可以說左值對象都擁有其所支配的一片內存)
ps.想要深入了解可以去看看C++11
的右值引用和std::move()
添加回答
舉報
0/150
提交
取消