關於c語言的計算問題,關於c語言的計算問題

2022-10-11 14:36:57 字數 575 閱讀 5016

1樓:匿名使用者

這涉及c的細節,我建議你記住:程式中的常量其實也存放在記憶體單元中,c規定運算運算子兩旁同類時運算結果與參與運算的數的型別相同,事實上時:加法器直接處理那兩個記憶體單元中的資料,並將結果送到另一記憶體單元,而這裡的「另一記憶體單元也是兩位元組長,因此他只接收到結果的低二位元組部分(及1的補碼)所以,以後的賦值運算也無濟於事!

而對於一般使用者完全可以這樣記:

32767被預設為int,根據c語言規定,運算結果與參與運算的數的型別相同(運算子兩旁同類時)。所以結果被預設為int型,自然就溢位了,

只要在常數後加字尾就能強制轉換,當然也可一用強制型別轉換(long)

pow()的原型時

double pow(double x,double n)所以你呼叫時系統就已經轉換了

2樓:匿名使用者

誰說會溢位

樓上的是誰 long最大是32767 你搞錯沒 c中int最大32767

3樓:匿名使用者

long型的最大值就是32767,你32767*32767當然會溢位,建議maxlongint

關於c語言問題關於c語言的問題

void vtaskstartscheduler void privileged function 是函式定義,函式名 vtaskstartscheduler,void 表示該函式是無參函式,前面的 void 表示這個函式無返回值。privileged function 是巨集,預編譯期間,執行文字...

關於c語言for語句的問題,關於C語言for語句的問題

這兩個程式是不同的,for語句在不加大括號情況下只迴圈到之後的一個分號,即前一個程式迴圈體包括printf 輸出為1234 後者迴圈體中不包括printf 執行完for語句後,再執行printf 輸出為5。第一個for迴圈的迴圈體內有一條語句,那就是printf,每次迴圈都要執行一次迴圈體內的語句,...

關於C語言簡單問題,關於C語言一個簡單問題

c語言有兩個標準,c89 89年出的,c99 99年出的c89規定,在任何執行語句之前,在塊的開頭宣告所有區域性變數。在c99以及c 中則沒有這個限制,即在首次使用之前,可在塊的任何位置都可以宣告變數。編譯結果和c語言的編譯器實現有關,你用的可能是較老的c編譯器,只支援c89規定。簡單的講就是老的編...