關於低階 C 的垃圾問題

發布 科技 2024-04-07
18個回答
  1. 匿名使用者2024-02-07

    其結果是 :1,2,1

    如果先呼叫 x++ 中的 x++&y++,然後再加,所以先判斷 x=0 為 false,因為只要有乙個條件為 false,&&& 就會終止判斷,所以它不會執行下面的 y++,並且 x 的值,在這個語句之後,是 1,3,2

    else if(x+1==6||y--)z--,判斷x+1==6,1+1==6為false,則判斷y—,y為3為真,(執行此語句後y為2),然後執行z--,所以z為1

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

    x=0,所以第乙個 if 不執行,但 x++, x=1, y=3, z=2

    接下來是 Y-- 和 Z-

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

    如果你不懂C,就不要談論C。 你平時用的Windows作業系統,都是用所謂的“垃圾語言”C語言編寫的! C真的是垃圾嗎?

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

    在不同的編譯環境中,結果可能會有所不同,在環境中執行以下操作:

    如果第乙個表示式為假,則不會判斷後續表示式(按照常理,只有當條件為真時,“和”計算的結果才為真,如果其中乙個條件為假,則其他條件不需要判斷),例如。

    這邊。 如果(x++&y++)x為0(因為取x值先參與計算,然後x值增加1),條件不滿足,判斷結束,所以沒有y++判斷,那麼y值不變,z值當然也不變。

    因此,執行此句後,三個變數值分別為:x==1、y==3、z==2

    同理,if條件中的“or”計算語句也是按照“or”運算的規則進行的,也是從左到右計算的,但是這裡遇到0時,不會停止判斷,而是1。

    如果不滿足條件,則將執行它。

    else if(x+1==6||y--)z--;

    這裡,首先判斷x+1==6,顯然1+1==6是結果是假的,那麼y--,y的值現在是3(參與計算後,再減去1,那麼結果是2),非零值,那麼結果是真的,執行z--,z值減去1(z結果為1)。

    最終輸出為:

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

    我不知道你在問什麼。

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

    使用 dev-c++ 開啟原始碼。

    您可以直接按 F9 鍵編譯 + 執行。

    如果編譯中有錯誤,請及時糾正,否則將無法執行。

    為了看到螢幕的輸出,我們通常在程式結束時返回 0; 在(1)中增加乙個句子; 將程式捕獲在無限迴圈中,以便於檢視。

    此外,dev 中的 main 函式必須是 int。

    還有一張照片,你看。

    最左邊是編譯快捷鍵-ctrl+f9,中間是執行執行快捷鍵-ctrl+f10,最後是編譯&執行快捷鍵-f9也可以直接按下按鈕,也可以使用快捷鍵。

    如果你的圖示和我的不一樣,那就把滑鼠放在上面,就會顯示角色鍵和快捷鍵。

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

    編譯先,有乙個快捷鍵ctrl+f9,編譯提示完成後,ctrl+f10執行。

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

    位址還是垃圾? 每個位址都是明確的。 只有未初始化的位址空間才有隨機垃圾!

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

    第二個問題:p對應乙個固定的位址單元,將該單元的內容作為指標訪問相應的儲存單元,並列印儲存在後乙個儲存單元中的值。 儲存在所謂的垃圾郵件位址中的值。

    其實資料裡沒有垃圾,但是在你的程式裡就不是垃圾,只要用它,就不是垃圾。

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

    A 是 int 型別的變數,p 是 int* 型別的變數。

    輸出 a,則它是垃圾輸出的 int 值。

    輸出 *p,那麼就是輸出乙個垃圾 int * 變數指向的記憶體的值,因為 garbage int * 變數指向的記憶體的使用權很可能不屬於你,所以這是乙個“不安全”的行為,編譯器一般會報錯。

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

    1、它不是位址,或者 a 中的值是垃圾值。

    2、同上。 p 的值是垃圾位址,*p 是垃圾值。

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

    a 的值是不確定的。

    p 的值是不確定的。

    p 不確定記憶體位址的東西,可能是段錯誤等。

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

    由於您沒有為 a 表示的記憶體賦值。

    所以 a 可以指向任何記憶單元,所以它不是垃圾,它是儲存在記憶體單元中的值。

    都是8位,當然會很大,每次都不一樣的不能叫垃圾,也沒有語法錯誤。 只是 a 沒有初始化,也沒有賦值。 某些編譯器預設為 0,如果不是,則為儲存單元 a 中的值。 是乙個即時值。

    A 是 int 型別的變數,p 是 int* 型別的變數。

    輸出 a,則它是垃圾輸出的 int 值。

    輸出 *p,那麼就是輸出乙個垃圾 int * 變數指向的記憶體的值,因為 garbage int * 變數指向的記憶體的使用權很可能不屬於你,所以這是乙個“不安全”的行為,編譯器一般會報錯。

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

    輸出垃圾值。 如果指標沒有 p= null,它將輸出一些亂碼值。

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

    通常它應該是學生作業,這個不會直接給你源程式。 認真學習,但不要把它當成個人! 這是為了你好!

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

    是你的電腦有故障,還是軟體有問題,我執行它沒有錯誤。

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

    從此路徑中可以看出,生成的物件檔案位於臨時資料夾(temp)中,由於它是臨時資料夾,因此當然可能找不到它。 對於剛在Windows下學習過C語言的人,建議使用DevCPP,因為它操作簡單,使用方便。 當然,學習 C 的最好方法是在 Linux 下,比如 Ubuntu。

    我現在的電腦裡有乙個 ubuntu 系統,我用它來學習; 乙個是windos7,用於娛樂和學習,windows7 中安裝的 C C++ 編譯器是 devcpp。

    順便說一句:當你用devcpp建立乙個程式時,當你編譯它時會提示你儲存,然後讓你選擇儲存路徑,所以這是非常人性化的。

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

    float max, min;定義它後,您不會初始化它,並且其中的資料位當時是記憶體中的髒資料,如果以 min 為單位的資料小於陣列中的資料,就會發生這種情況。 您查詢最大值和最小值的方法是錯誤的。 最大值和最小值可能都不是陣列中的資料。

相關回答
9個回答2024-04-07

範圍。 你靜態字元 *chh;

static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More

6個回答2024-04-07

了解以下規則:1)過載運算子不會改變運算子的優先順序。 >>>More

4個回答2024-04-07

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

9個回答2024-04-07

然而,很明顯這是有問題的,因為變數 a 根本沒有賦值。 >>>More

11個回答2024-04-07

C 語言的有效變數名稱:

首先,它只能包含數字、字母和下劃線。 >>>More