在C++中,爲何前自增操做生成左值,後自增操做生成右值?爲何有這樣的區別? .

左值意味着這個值是內存裏一個可訪問的地址,右值表示一個數據(可能沒有確切的地址) 好比說 ++i 先將 i 所存放的數加一,再返回i,即&(++i)是有意義的,能夠做爲一個左值, 而 i++ 將 i的值加一,而且返回沒有增長前的i,(i++先保存i原來的 值 ,再將i的值加一, 而後返回未加一以前的 值)這個時候這個(i++)是一個數字,沒有固定的存放地址,因此只能做爲右值了. 因此: (a++)
相關文章
相關標籤/搜索