lvalue

    1熱度

    3回答

    可能重複時,「左值要求的」錯誤: Is array name a pointer in C? 假設我有一個字符數組說編曲和改編將代表第一元素,以便改編的地址++應該是完全合法的,那爲什麼編譯器會說'需要左值'。 另外,如果我這樣做: ARR =編曲+ 1,那麼爲什麼它是無效的轉換。我只是增加一個指針。編譯器告訴我們,在LHS上,操作數類型是char [4],但是在RHS上它是char *。 mai

    2熱度

    1回答

    我剛剛開始通過閱讀this page瞭解C++ 11中的右值引用,但我陷入了第一頁。這是我從該頁面獲取的代碼。 int& foo(); foo() = 42; // ok, foo() is an lvalue int* p1 = &foo(); // ok, foo() is an lvalue int foobar(); j = foobar(); /

    1熱度

    2回答

    我使用通過在主程序中的make_employee函數出返回的指針具有麻煩。 //我有一個單獨的.c文件下面的代碼: struct Employee; struct Employee* make_employee(char* name, int birth_year, int start_year){ struct Employee* new = (struct Employee*)m

    1熱度

    1回答

    我無法理解爲什麼遞增下面的pnArryCpy中的指針不正確。我想了解如何用指針表示法以不同的方式複製數組,但我需要了解這有什麼問題(例如,(* tgt_s)++;其中int (*tgt_s)[cs]),以及爲什麼tgt_s是左值(例如,tgt_s++有效)但*tgt_s不是(真的)一個左值。 int main(void) { int arr1[2][4] = { {1, 2, 3,

    0熱度

    2回答

    int x = 8; int y = x ; 在這裏如何左值可以作爲右值?我知道這是一個愚蠢的問題,但我只是想在右值和左值上明確我的概念。

    2熱度

    4回答

    我有一個關於下面的代碼一些問題: #include<stdio.h> void main() { int a=6,b=2,g; a>b?g=a:g=b; } ,這是沒有任何錯誤正確執行。但如果看得很清楚,應該給出左值需要錯誤。 (a> b?g = a:g)是實際表達式,因爲沒有括號被用作a> b?g = a:(g = b);和值b被分配給在求解第二個賦值(=)運算符左邊的表達式

    0熱度

    3回答

    我試着寫它可以返回處理分配的元素的引用的函數,示例代碼如下所示(Python3): row_a = ["rowname","items1","items2"] def rowname(row): return row[0] rowname(row_a) = "another_rowname" 但是,它不會工作,因爲intepreter抱怨一樣: SyntaxError: can'

    5熱度

    1回答

    我試圖返回一個矩陣塊作爲函數的左值。比方說我的函數看起來像這樣: Block<Derived> getBlock(MatrixXd & m, int i, int j, int row, int column) { return m.block(i,j,row,column); } 事實證明,似乎C++編譯器明白塊()操作符提供了只是暫時的價值,所以返回它作爲一個左值是由編譯器禁

    0熱度

    4回答

    的代碼行:gsl_blas_daxpy(-a,&gsl_matrix_column(D, q).vector,y); 原因錯誤 錯誤C2102: '&' 需要-1-值 ,現在的問題是我沒有控制的GSL功能,所以我不知道如何解決這個問題(刪除「&」沒有工作) 之後我ge牛逼 錯誤C2198: 'gsl_blas_daxpy':呼叫 參數太少我使用Visual Studio 2010中 GSL_EXP

    1熱度

    2回答

    我具有以下structs: typedef struct stack { void* ss_sp; size_t ss_size; // ... } stack_t; typedef struct ucontext { ucontext_t* uc_link; stack_t uc_stack; // ... } ucontext