可能重複時,「左值要求的」錯誤: Is array name a pointer in C? 假設我有一個字符數組說編曲和改編將代表第一元素,以便改編的地址++應該是完全合法的,那爲什麼編譯器會說'需要左值'。 另外,如果我這樣做: ARR =編曲+ 1,那麼爲什麼它是無效的轉換。我只是增加一個指針。編譯器告訴我們,在LHS上,操作數類型是char [4],但是在RHS上它是char *。 mai
我試圖返回一個矩陣塊作爲函數的左值。比方說我的函數看起來像這樣: Block<Derived> getBlock(MatrixXd & m, int i, int j, int row, int column)
{
return m.block(i,j,row,column);
}
事實證明,似乎C++編譯器明白塊()操作符提供了只是暫時的價值,所以返回它作爲一個左值是由編譯器禁