lvalue

    1熱度

    1回答

    我在C++ 1.首先奇怪的事情我無法理解的是 的const_cast運算符的語法即 閱讀的const_cast操作-const_cast-- < - 類型 - > - ( - 表達式 - )--------------------> < 我有什麼都懂這個語法是,它有助於拋棄常量性Type類型的expression的。但考慮下面的代碼 class ConstTest { private:

    8熱度

    2回答

    C是第一種使用術語左值的編程語言,還是它會更進一步?請注意,我不是在談論「賦值語句左側的某些東西」(它很久以前它在C++中不再表示)的一般概念。你幾乎可以在任何命令式編程語言中找到它。我具體詢問這個詞的左值。它從何而來?

    1熱度

    1回答

    我正在用D的ANTLR實現解析器。這種語言基於C語言,因此聲明和表達式存在一些歧義。試想一下: a* b = c; // This is a declaration of the variable d with a pointer-to-a type. c = a * b; // as an expression is a multiplication. 作爲第二個例子中只能出現在賦值表達式

    3熱度

    4回答

    我已經把一些代碼分成了兩個文件,它之前工作。在一個文件中,我有一個函數,它有一個out值參數,它是一個指向指針的指針。 我用填充調用此參數的getter和取消引用它: foo(&bar()); 但是我得到一個錯誤說「」 &「需要一個左值」。我明白這個錯誤意味着什麼,但是我認爲我能夠做到這一點,因爲它是一個指針,所以它代表了原來的'事情'。 有什麼事情做的事實,實際指向的內存位置可能會改變,即使

    2熱度

    4回答

    我想了解指針遞增和提領走在一起,我也該嘗試一下: #include <stdio.h> int main(int argc, char *argv[]) { char *words[] = {"word1","word2"}; printf("%p\n",words); printf("%s\n",*words++); printf("%p\n",wor

    2熱度

    3回答

    注意:這不是在標題中帶有該名稱的十億個和一個問題的重複。這與指針和非常奇怪的東西有關,而不是意外的=而不是==。 我有一個C++函數,其中有一個void*參數,稱爲out。我有這樣一行: (char*)out=new char[*size]; 凡size在uint32_t*。編譯器抱怨: fundemental_bin_types.h:55:32: error: lvalue required

    1熱度

    5回答

    可能重複: Lvalue required error 我有我的C程序 main() { int arr[] = {1, 2, 3, 4}; printf("%d", *arr); arr++; printf("%d", *arr); } 一個錯誤,當我編譯此代碼我得到的左值所需錯誤。爲行與ARR ++。 任何幫助!

    0熱度

    2回答

    我正在試圖製作一個非常簡單的帶有庫的Hashtable。我嘗試製作的行包含C字符串或int作爲鍵。價值可以是4種不同的類型。如果它是結構體,我嘗試將指針存儲在malloced內存區域中。然而,在我的世界裏,這並不遵循同樣的邏輯非指針字段和獲取: error C2106: '=' : left operand must be l-value when I try to store pointer a

    0熱度

    2回答

    當試圖分配函數指針時,我有一個左值操作數問題。我不知道問題出在哪裏,但我會給你所有與這個特定問題有關的代碼。 double *func(double); //initialization for a pointer to a function that both returns a double and requires a double func = &xsquaredsinx; /

    0熱度

    4回答

    我想兩個變量的地址比較內存變量比較存儲器地址: chunk_t *old_chunk, *new_chunk; if(&(old_chunk + 1 + old_chunk->size) == &new_chunk) { } 這裏是原型chunk_t: typedef struct chunk_tag { struct chunk_tag *next; /* next n