C語言A不是左值,怎麼解釋

發布 科技 2024-05-17
8個回答
  1. 匿名使用者2024-02-10

    賦值表示式返回結果,例如,x=2*y的返回值與賦值 x相同。

  2. 匿名使用者2024-02-09

    這種自加自減法其實很簡單,由乙個變數 i 和乙個自加符號 ++ 組成。

    在第一種情況下,變數在前面,比如 i++,先用 i 的值,然後加 1 到第二種情況:++ 符號在前面,例如:++1,i 的值先加 1,然後再使用。

    如果首先是 i++,則使用 i 的值顯示 5,然後 i 將 1 加為 6,然後 j --,使用的 j 值,顯示 5,然後再次減去 1 到 4。

    i:我把 1 加到 7,然後顯示 7

    j : j -1 在顯示 3 之前變為 3

    還有第三個:

    i++ 和第乙個一樣,先用後加 1,所以顯示 7,再加 1,變為 8,但不顯示。

    j-- 也是先用後減,所以顯示 3,然後減去 1 變成 2,但不顯示。

    至於最後兩個,你自己想想,同樣的原因。

    其實只要看第乙個符號,第乙個是變數,先用後計算,第乙個是++或者--,就會計算後用。

  3. 匿名使用者2024-02-08

    左值和右值在編譯之前。 在 C 中,賦值運算子兩邊的兩個值被宣告,左邊稱為左值,右邊稱為右值。

    定義:左值是可以用作左值的表示式,如果它可以被引用到乙個物件,並且該物件是一塊可以檢查和儲存的記憶體空間。

    右值是指對儲存在記憶體位址中的一段資料的引用。

    從上面兩個定義可以看出,左值實際上指的是乙個物件,乙個物件在我們的程式中必須有乙個名稱,或者可以通過乙個名稱來訪問,所以左值可以概括為:左值意味著程式中必須有乙個特定的名稱來引用這個值。 右值是指位址中的內容,因此右值可以概括為:

    右值表示程式中沒有引用此值的特定名稱。

    A,因為返回結果與運算後的A相同,++A返回實數A,可以重新賦值,所以可以作為左值使用。 A++在操作前返回a,此時a有+1,返回的資料其實是過去的a,是從別的地方複製來的,不是真正的a,所以不能賦值,所以只能是右值。

    所以 a++; 執行順序是先複製 a 的值,進行整體計算,然後 a=a+1。

  4. 匿名使用者2024-02-07

    討論很熱烈,但我認為它並沒有那麼複雜。 ++a 可以是左值,因為 ++a 是“變數”——即 a=a+1 之後的變數 a。 是充當表示式的左值的變數。

    A++ 不是乙個變數,它是乙個表示式——即 a+1,它還沒有計算出 a+1 的值並將其分配給 a,所以它不能充當左值——誰看到了 int a, b; 然後 a+1=9 或 a+b=1000 或 b+4=a+cos(b)? 含義不明確,所以不允許使用C,並且不能為表示式分配值......

  5. 匿名使用者2024-02-06

    A++是乙個單獨的操作,也就是說,你不能先執行前半部分操作,再執行其他操作,然後再執行後半部分操作,所以如果A++返回A,A遞增1,則返回的A一定是自遞增......

  6. 匿名使用者2024-02-05

    a++的執行順序不是先返回a,然後a=a+1嗎 這是正確的,但是表示式a++的值是a前面的值,而不是a+1後面的值,也就是說表示式a++的結果不再與a同步。

    既然不與A同步,那麼它就不是物件A,它的位址也獲取不了,它只是乙個值,不是物件,所以它是乙個右值。

  7. 匿名使用者2024-02-04

    a++ 的操作順序是從右到左。 也就是說,首先計算 a+1 的值並分配給 a。

  8. 匿名使用者2024-02-03

    所謂右值,就是乙個只能放在等號右邊的值,也就是說,它只能賦值給其他變數,而不能賦值。

    A,因為返回結果與操作後的 A 相同,++A 返回實數 A,可以重新分配。

    A++ 在操作前返回 a,此時 a 已經是 +1,返回的資料其實是過去的 a,是從別處複製來的,不是真正的 a,所以無法賦值。

相關回答
8個回答2024-05-17

find 用於查詢其他文字字串。

within text),並返回查詢文字的起始位置編號,從 within text 的第乙個字元開始。您還可以使用搜尋在其他文字字串中查詢文字字串,但與搜尋不同,find 區分大小寫,不允許使用萬用字元。 >>>More

8個回答2024-05-17

如果 main 函式沒有以 return 語句結尾,則 C 指定編譯器會自動向生成的目標檔案新增返回值,以指示程式正常退出。 但是,我建議您在 main 函式的末尾新增乙個 return 語句,關於 void main 在 C 和 C++ 中,不接收任何引數且不返回任何資訊的函式原型是“void foo(void); 可能正因為如此,很多人誤以為如果程式不需要返回任何資訊,就可以將 main 函式定義為 void main(void)。 然而,這是錯誤的! >>>More

13個回答2024-05-17

除非過載 domodal 函式,否則返回值只能是標準值 2。 >>>More

12個回答2024-05-17

當口譯員錯了。

如果 instr 中有相關字元,則返回位置,如果不存在,則返回 0 >>>More

10個回答2024-05-17

計算機在進行計算時,首先根據資料型別分配位址空間,分配位址後,首先將輸入資料轉換為二進位資料,然後進行計算。 您輸入的值 a 在邏輯上是正確的,但從計算演算法的角度來看是乙個病態函式,是計算機轉換二進位時容易出錯的值。 從中可以看出,計算機不如您聰明。