天天看點

左值問題i++與++i的指派問題

i++與++i的指派問題

以前在程式設計時。沒有注意這樣一件事情,一個整型變量,做前加加和後加加後,能否再給它指派???今天就讓我們驗證一下吧!!!

我們寫下面一段程式

int main()
{
    int iIndex = ;

    ++iIndex = ;
    iIndex++ = ;

    return ;
}
           

一些功能強大的編譯器在不不編譯的情況下就已經能夠提示iIndex++ = 10;這一行代碼是錯誤的。是以可能是編譯不過去的,這裡我們不是簡單的看這個結果,而是為什麼++iIndex = 20;這一行代碼不報錯呢?

原因是:

++iIndex傳回的是變量的本身,傳回的還是一個變量,它能夠被指派;而Index++的傳回值不能作為左值。

其實也沒有什麼道理好說的,C++這麼規定的,我們也隻好記住就是了。