C 逗號運算子 C 語言中逗號表示式的規則是什麼?

發布 科技 2024-08-04
28個回答
  1. 匿名使用者2024-01-31

    等號優先於逗號。

    因此,上述等式理解為:a = 15;

    此時,a 等於 15,15*4 等於 60,但未賦值 a。 因此 a 是 15。

    為了改變計算順序,可以改寫為:a = (3*5, a*4),那麼既然a等於0,0*4等於0,然後把值賦給a,所以a是0。

    不知道是哪本書說a=3*5,a*4等於60,如果要得到60的值,就得這樣改寫:a=(a=3*5,a*4)。 是你沒有讀完整本書嗎? 如果這本書是這樣寫的,那麼作者的技巧就值得懷疑了。

  2. 匿名使用者2024-01-30

    房東您好,書上說(a=3*5,a*4)這個十字架是60;

    這裡請大家了解數運算中方程的值,以及元素的值。

    這裡 a=3*5 元素的值變為 15,然後 a*4 這裡元素的值仍然是 15 並且沒有改變,因為它沒有被賦值,但這個公式的值是 60

    所以它應該像這樣 b=(a=3*5,a*4) 並列印 b,然後結果是 60。

  3. 匿名使用者2024-01-29

    我認為這是乙個分號。

    嘗試使用分號。

  4. 匿名使用者2024-01-28

    a=3*5,a*4;這句話改成 a=3*5,a=a*4; 以上光計算,未賦值。

  5. 匿名使用者2024-01-27

    C 中的逗號表示式從左到右依次為:k=3*2=6,k+2=8,表示式返回 8。

    逗號表示式用法:

    使用順序點時,繫結順序為從左到右,用於順序計算,整個表示式的值為最後乙個表示式的值。

    逗號表示式的要點:

    1)逗號表示式從左到右逐個計算。

    2)逗號表示式作為乙個整體,其值是最後乙個表示式的值(即表示式n)。

    3) 逗號運算子在所有運算子中具有最低的優先順序。

    例如:int a1, a2, b=2, c=7, d=5; 第 1 行。

    a1=(+b,c--,d+3);第 2 行。

    a2=++b,c--,d+3;第 3 行。

    對於為 a1 賦值的 **,有三個表示式,用逗號分隔,所以最終值應該是最後乙個表示式的值,即 (d+3) 的值,即 8,所以 a1 的值是 8。

    對於**給a2賦值,也有三個表示式,本例中的三個表示式分別是a2=++b,c--、d+3,(這是因為賦值運算子的優先順序比逗號運算子高),雖然最終表示式的值也是8,但是b=4(當第二行**完成時, b=3,即當第三行**執行時,b的值為4),所以a2=4。

  6. 匿名使用者2024-01-26

    int main()

    結果:值 = 8

    逗號表示式從左到右計算,但右邊的資料值作為表示式值返回;

    1. k = 3*2 // k = 6;

    2.(6, k+4) 表示式返回 10,k 仍為 63(10, k+2) k 為 6,表示式返回 8

  7. 匿名使用者2024-01-25

    逗號表示式的規則是先數左邊,然後表示式的值是右邊的值,所以先k=3*2=6,k+2=8,所以整個表示式的值是8我建議你看看C語法。

  8. 匿名使用者2024-01-24

    在 C C++ 中,逗號表示式會產生逗號前面的部分,逗號後面的部分可以順便理解完成的工作。

    在你的**。

    y=(x=a+b),(b+c);

    在這句話中,操作的順序。

    1).x=a+b 給出 x=6

    2)b+c3)y=x=a+b=6

    所以結果是 y 和 x 都等於 6。

  9. 匿名使用者2024-01-23

    逗號運算子按從左到右的組合順序執行,然後取最右邊方程的值作為返回值。 因此,這個表示式的計算過程如下:因為有乙個括號運算子,所以先求值,逗號運算子從左到右求值k=3*2,其中k=6;然後計算k+4,此時k=10,返回; 還有另乙個逗號運算子,它繼續計算右邊的 k+2,因為左邊的方程已經計算完畢,並返回表示式 (k=3*2,k+4),k+2,值為 12。

    同樣,由於 k 的末尾為 +2,因此 k 的最終值也是 12

  10. 匿名使用者2024-01-22

    逗號表示式按右側順序計算。 首先賦值 k 6,然後賦值 k+4,請注意,此時它只是 k+4,並沒有說 k=k+4,然後在括號外賦值 k+2,因為 k 仍然是 6所以最後,我們得到 6+2,也就是 8

  11. 匿名使用者2024-01-21

    逗號運算子,計算後取右邊的值。

    k=2*3=6

    好吧,錯了。 以下是正確的。

  12. 匿名使用者2024-01-20

    第乙個 k = 6,k + 4 只有 10,k + 2 值是 8,因為好表示式的值是最後乙個,所以它是 8

  13. 匿名使用者2024-01-19

    1.用法: 1、使用順序點時,組合順序從左到右,用於順序求值,整個表示式的取值為完成後最後乙個表示式的取值。

    main()

    int a,s,d;

    s=2;d=3;

    a=12+(s+2,d+4);

    計算括號中的值:s+2=4,d+4=7;括號應為(4,7),括號中的值只能為最後乙個,如果沒有括號,則取第乙個; a=12+7=19。

    x=(y=3,(z = y+2) +5);

    就是先把y賦值給3,把y遞增到4,然後把4加到2,把結果6賦給z,再把z賦給5,最後把x賦給結果值11。

    2. 注意:逗號運算子 ( 是 C 語言運算子中優先順序最低的運算子。

    2.其他用途:

    1. 申請:

    int i;int j;

    for(i=0,j=0;i<5;i++,j++)

    2.分隔符時:int i,j;

  14. 匿名使用者2024-01-18

    逗號運算子通常與一組表示式相關聯。

    其運算的結果是 6

    換句話說,無論逗號演算法對多少個表示式進行操作,它返回的最終結果都必須是最後乙個表示式的結果。

  15. 匿名使用者2024-01-17

    首先,重要的是要了解逗號運算是多變數運算,其整個值是最後乙個表示式的值,在這種情況下,該值是從左到右計算的。

    在上面的程式中,首先找到x=a+b+z的值,而z的值根本沒有賦值,所以結果不會出現x,y等於4! 也就是說,您的程式有問題。

    如果按照上述操作順序改為 y=(z=a+b), (x=a+b+z),則結果為 x=12, y=12;

    你可以看看它!

  16. 匿名使用者2024-01-16

    逗號表示式有兩個用途。

    逗號前後的語句會跑到,例如(u=5,k=0),執行後u的值為5,k的值為0

    整個表示式的值=最後一句的值=(k=0)=0,即f的值為0

  17. 匿名使用者2024-01-15

    0 逗號運算子的表示式值為最後乙個表示式的值,最後乙個為 k=0;

    實際上,它是 0

  18. 匿名使用者2024-01-14

    等。。 我弄錯了。 還需要了解 Shenma 是乙個逗號表示式。

    我和 uuyyhhjj 和 delta Charlie 說了同樣的話,但我們都弄錯了。 您可以自己執行我們的所有示例,看看是否是這種情況。 我覺得以下幾點應該是我的正確理解。

    逗號表示式在所有運算子中具有最低的優先順序,並且低於賦值運算子。 它的作用是計算每個表示式,並使用最後乙個表示式返回的值作為逗號表示式的值。 (不遺餘力)。

    就像你說的那個,如果是的話。

    x=200,500;

    不帶括號),x 等於 200,然後上面整個方程的值為 500。

    但是帶括號,(200,500) 是乙個單獨的公式,它的值是 500,所以 x=(200,500) 在賦值 x 的末尾是 500

    舉幾個例子,x=(21,22,23,24,25);

    在這乙個中,先數括號,計算後丟棄前 21 到 24,括號中的表示式值為 25。 之後,執行賦值操作,x 的值成為括號中表示式的值 25。

    如果編譯。 int x;

    int a;

    x=(21,22,23,24,25);

    cout<<"x="<

    如果您有任何問題,請隨時提問。

  19. 匿名使用者2024-01-13

    它必須是 500,逗號運算子只將最後乙個表示式的值作為整個語句的值。

  20. 匿名使用者2024-01-12

    逗號運算子將最後一項的值作為整個逗號表示式的值。

  21. 匿名使用者2024-01-11

    inta=3,b=4,c=5;

    c=(a+=a-=a),這裡是兩個單獨的句子(b=a,c+2);

    a+=a-=a這個從右到左執行。

    a-=aa=0a+=a

    a=0c=a

    c=0,所以c=0

    b=ab=0

    C+2c 保持不變。

    不,有必要將最後乙個括在括號中。

    例如,c=((a+=a-=a),(b=a,c+2));

    這是採取後者的那個。

  22. 匿名使用者2024-01-10

    你的問題似乎寫錯了地方,應該是 a=(

    b,c--,d+3),這是“逗號運算子和表示式”的部分,“逗號運算子是從左到右計算的,整個逗號表示式的值是最右邊表示式的值”。

    括號內是乙個逗號表示式,a 採用逗號表示式的值。 所以答案是 a=8

    很專業,哦,給它領養。

  23. 匿名使用者2024-01-09

    由逗號運算子組成的公式也是乙個表示式,其值等於最右邊表示式的值。

  24. 匿名使用者2024-01-08

    逗號運算子可以將兩個或多個表示式連線成乙個表示式,稱為逗號表示式。

    逗號運算子在所有運算子中具有最低的優先順序,因此 x=(200,500) 首先是 (200,500),200 後跟 500,因此 x=500。

    如果表示式是這樣的 x=(3+4,4+7),x 將以 4+7 結束,即 x=11。

  25. 匿名使用者2024-01-07

    在型別 C 中,逗號可以用作操作表示式。

    例如,x=(x=1,x=x+1,x+2) 從左到右計算,相當於先將 x 賦值為 1,然後計算 x+1=1+1=2,最後計算 2+2=4,返回 4

    而你讀的書可能根本沒有涉及太多細節。

    當 x=(200,500,600) 時,x 先是 200,然後是 500,最後是 600,因為沒有賦值操作,所以 200 和 500 被覆蓋。

  26. 匿名使用者2024-01-06

    作為參考,逗號可以理解為逗號表示一種順序。

    比較以下兩個表示式會更清楚:

    x = x + 10, x * 3;

    x = (x + 10, x * 3);

    假設 x 的初始值為 10

    對於第乙個表示式,它等效於:

    x = x +10;

    x = x * 3;

    在這種情況下,x 為 (10 + 10) *3 = 60

    對於第二個表示式,x + 10, x * 3) 等價於:

    x + 10

    x * 3 所以它的返回值是 x * 3,即 10 * 3 = 30,所以此時 x 是 30

  27. 匿名使用者2024-01-05

    逗號運算子 ( 是 C 運算子中優先順序最低的,用於從左到右的順序計算(最後乙個逗號之後的表示式的值用作整個表示式的值)。

    下面是如何使用逗號運算子的示例:

    int a=3, b=5, c;c = a>b, a+b;執行後,c的值為0,因為逗號運算子的優先順序低於賦值運算子,所以先將a>b(即0)的結果賦值給c,然後計算結果a+b(結果不儲存),所以c=0c = (a>b, a+b); 執行後,c的值為8,因為括號的優先順序高於賦值運算子,所以先計算括號中的表示式,結果是最後乙個表示式的值,即a+b的值,所以c=8

  28. 匿名使用者2024-01-04

    逗號運算子 ( 是 C 運算子中優先順序最低的,用於從左到右的順序計算(最後乙個逗號之後的表示式的值用作整個表示式的值)。

    下面是如何使用逗號運算子的示例:

    int a=3, b=5, c;

    c = a>b, a+b;執行後,c的值為0,因為逗號運算子的優先順序低於賦值運算子,所以先將a>b(即0)的結果賦值給c,然後計算a+b的結果(結果不儲存),所以c=0

    c = (a>b, a+b);執行後,c的值為8,因為括號的優先順序高於賦值運算子,所以先計算括號中的表示式,結果是最後乙個表示式的值,即a+b的值,所以c=8

相關回答
30個回答2024-08-04

樓主不用頭暈,以上就對。你的老師是對的。 >>>More

7個回答2024-08-04

SQL Server 資料中的運算子和表示式。

2個回答2024-08-04

說起來比較麻煩,但我似乎還是很快明白了。 舉乙個簡單的運算子過載的例子。 兩點的加法和減法是超載的。 >>>More

16個回答2024-08-04

請注意,大於 的反義詞是小於或等於。

1、a、b、c只有大於60; >>>More

13個回答2024-08-04

符號是按位運算,即運算,0 & 1 = 0

這樣的問題是將原始 = 0xabc 十六進製轉換為二進位,即 1010、1011、1100 >>>More