問C語言的小問題,問一個C語言的小問題

2022-03-27 09:59:36 字數 964 閱讀 5126

1樓:

你就把取值範圍理解成一個圓圈,

int取值範圍:-32768-32767

超過了32767(最大數),就繞一圈到-32768(最小數),再從最小數開始往上加;

所以會是-1懂了麼

2樓:

上面程式不能正確執行~就異常退出咯~~得到的就是-1;

~~為什麼不能正確執行~~

1 你的unsingned出錯~應該是unsigned啦~2 你定義的a為無符號整型,而%d輸出的的是有符號整型~~~定義與輸出的型別不一致哈~~

需要說明一點的是a的值沒有溢位,因為unsigned int型的取值範圍是0~4294967295(此時int為32位計算機中的4b,若int為2b,則取值範圍是0~65535,現在一般的都是32位及以上的計算機,所以不會溢位咯)

還是多看看書吧~~~~

3樓:匿名使用者

首先這個int一定是16位的,其次%d列印有符號整數

a==0xffff==(unsigned int)-1

4樓:匿名使用者

樓主,這是**溢位問題,因為c語言中的每個型別都是有範圍的,如果超出這個範圍,就會認為是假的,即為-1,因為c中-1代表假

5樓:

在不同的編譯器裡,資料型別的長度不一樣,65535超過它的表達範圍了!

6樓:若琳若現

樓主 寫出這樣 printf("a=%u",a);就ok了

這是輸出無符號型

7樓:匿名使用者

我用的是vc結果是65535,應該你用的程式有關

還有unsigned打錯了

8樓:手機使用者

%d是按補碼輸出,即把a按有符號型別處理,超出了int的這樣的最大範圍,最高為成了符號位。

問c語言的小問題,有經驗的回答,問一個c語言的小問題,有經驗的回答

int main 指的是執行完了main函式的返回值在初學階段,這個返回值是沒有作用的 一般可以作為程式有沒有成功執行完畢的標誌,而且如果出錯可以記錄出錯的型別 0就是正常執行完畢,1,2,3等就是有錯誤 可以自己設的,不過好像有規範 要寫複雜的程式或者要跟蹤錯誤的話就很有必要把main 設成int...

問問題 C語言 ,問一個問題 C語言

請將分加給上面的朋友。我來綜合一下上面各位朋友的答案 1.程式輸入有錯 第三行 scanf d,d,a,b 少了引號 應該是scanf d,d a,b 2.在原程式的最前面加上如下語句 include stdio.h int max int x,int y 如果你用的時microsoftvisual...

問關於C語言的問題高手來,問一個關於C語言的問題高手來

include int max int x,int y,int z 函式申明void main int max int a,int b,int c int a,b,c,f 這句是錯的 f max a,b,c printf max d n f int max int x,int y,int z int...