C 如果定義了 int i 3,那麼執行 i i 後 a 的值是多少?

發布 科技 2024-06-11
13個回答
  1. 匿名使用者2024-02-11

    答:由於 - 和 - 都是右組合的,它們都作用於前面的 i。 這樣,可以將 i---i 表示式理解為 (i-)-i 和 (i--)i; 但是 C 編譯器有一條叫做“貪婪”的規則,它指出“盡可能多的符號”要“一次全部”解釋,所以 i---i 被解釋為 (i--)i 而不是 (i-)-i。

    在這種情況下,因為 i-- 是後驗 --,a=i---i; 被解釋為 a=i-i; i=i-1;,結果是 a=3-3=0, i=3-1=2。 不過這個問題有點特殊,把i---i解釋為(i-)-i,結果也是0; 因為 --i 成為第乙個首先計算的--,,a=i---i; 被解釋為 i=i-1; a=i-i;,結果是 a=2-2=0 - 這是乙個“冗餘”詞,供參考。

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

    行為沒有定義,標準不保證這種表示式的結果是什麼,編譯器可以自行決定做任何事情。 換言之,編譯器提出的任何值或編譯錯誤都符合語言標準。

    因此這樣的**是錯誤的,避免寫這樣的**。

    當變數在同一表示式中多次出現時,請避免對其使用遞增和遞減運算子。

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

    語句為 int a; 然後執行語句 A 4*5,A+5;a 後面的值是 20 逗號表示式的優先順序。

    它的優先順序低於賦值操作,因此它執行 a=4*5(a 的值變為 20),然後計算 a+5。

    整個逗號表示式的值為 25,變數 a 的值為 20。

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

    4*5 是表示式; 該值被賦值給 a,因此 a 的值為 20; a+5;是乙個表示式,它不分配給任何變數; 所以 a 的值仍然是 20。

    int 型別在記憶體中占用 4 個位元組,即 32 位。 int 型別是有符號的,所以 32 位不是全部用來儲存資料的,最高位是用來儲存符號的,最高位是 0,提示資料是正的,最高位是 1,表示資料是負的,其他 31 位是用來儲存資料的。

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

    a=4x5=20,則 a1=a0+5=25

    迴圈後,a 的值為 25

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

    答案應該是B

    a=10,a+10,a++是逗號表示式,逗號表示式的規則是從第乙個表示式到最後乙個表示式的計算第乙個表示式的計算方式,最後乙個表示式的值是逗號表示式的值。

    根據這個規則,首先計算 a = 10,該值等於 10,並且為變數 a 分配乙個值 10。 計算 a+10,值為 20最後計算出A++的值為10,A的值為11但是整個表示式的值是 10,所以選擇 b。

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

    整個表示式等價於(a=10),a+10,a++,是乙個逗號表示式,值為10,a最後等於11。

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

    答案是 11,這是字數。

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

    30。這是C語言中運算子的優先順序,先執行括號程式,再執行逗號運算子,先執行a=2*3,再執行a*5,取右運算元,然後賦值給i,即30。

    **如下:包括

    int main(){

    int i,a;

    printf("輸出 i 的值為:")

    i =(a=2*3,a*5),a+6;

    printf("%d",i);

    return 0;

    程式執行結果:

  10. 匿名使用者2024-02-02

    i=(a=2*3,a*5),a+6

    這是乙個逗號表示式。

    結果是最後乙個逗號之後的表示式的結果,即 a+6。 但是,這個表示式在這裡製造冰雹是沒有價值的。

    i=(a=2*3,a*5),a+6;可以在任何表示式的末尾新增分號以形成表示式語句。

    執行此語句後,變數 i 的值為 30,變數 a 的值為 6。

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

    如果 int+i[5]=,那麼 i[2] 的值是多少?

    你好,這是標題嗎? 我可以拍照嗎?

    第三個。 這定義了乙個長度為 5 的整數陣列。

    謝謝。 不客氣。

    從 ii[1] i[2] 分別為 1、2、3,最後兩個為空。

    所以選 3

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

    C 有乙個定義:int+a=; 那麼表示式 A[A[A]] 的值是多少。

    您好,很高興為您解答,C有乙個定義:int+a=; 那麼表示式 a[a[a]] 的值是 c 語言中定義的值,inta=6,那麼表簿等於 -60,表示式為 a+=a-=a*a++。 計算過程:

    從右到左 a-=a*a++a++ 取上乙個操作中的原始值,並在操作後加乙個,當前操作引用 a-=a*a++; 所以a=a-(a*a++)是a=6-(6*6); 如果上位的開口是b,即(b = a-(a*a++),那麼結束之後a = 7; b=-30;所以現在 a = 30; 然後計算左邊的a+=b; 注:(b = a - (a*a++) 因為 a = 30,b = 30,所以最後的 a = 60

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

    在此語句中,++a 表示對變數 a 執行自動遞增操作,首先將 1 加到 a 的值上,然後將該值賦值給 c。 因此,c 的值是 a 加 1 的值,即 6

相關回答
5個回答2024-06-11

這些不是巨集定義,而是檔案包含。

該巨集定義乙個字串,如下所示:define identifier。 >>>More

6個回答2024-06-11

#include

void sort(int arr,int n); >>>More

4個回答2024-06-11

我見過這樣的問題,我不明白你的意思,但我認為是這樣的,結構; 我打了...... 您可以在其中新增所有資料形式的定義,例如 int >>>More

25個回答2024-06-11

你的意思是說 a 是 10 的值還是字面意思是 10? >>>More

10個回答2024-06-11

下面是乙個 C 實現,它將陣列 a[10] 分配給 p[n]: >>>More