亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

在輸出的時候加上(int)是否可行

#include

int main()

?{ ??

? ? ? double num = 2.5; ? ? ?//定義浮點型變量num并賦值為2.5 ? ?

? ? ? printf("num的整數部分是%d\n", (int)num);

?? ? ?return 0;

?}

?這樣輸出是否可行?

或者在輸出之前加一行 num = (int)num ?是否可行?

正在回答

3 回答

都可以啊。不過強制轉換保險點還是加上數據類型。

int?num?=?(int)num;


0 回復 有任何疑惑可以回復我~
#1

shadower 提問者

非常感謝!
2015-05-27 回復 有任何疑惑可以回復我~

目前階段你所學到的類型大多是“算術類型”,比如各種整型(char short int long)和浮點型(float double),它們之間是可以進行轉換的。 因為它們的取值范圍不同,整型還有有無符號的區別,所以它們之間的轉換規則有些復雜,不過它們是完全可以進行轉換的。

“算術類型”屬于“標量類型”,指針也是一種標量類型。而結構體、聯合體、數組類型就算是“非標量類型”了。這里面有些類型也是可以進行轉換的,比如數組就可以隱式轉換為指向數組首元素的指針...

0 回復 有任何疑惑可以回復我~

如果你只寫?num = (int)num; 是不行的。這句只是將num的值臨時轉換為int(截斷成2),再將2賦值給num,而num仍然是double類型,與printf需要的類型不符。

類似Perona的答案,你可以這樣 int a = num; 再聲明一個int型變量,把num的值賦給a,這過程中會自動進行類型轉換,最后a的值是2,類型是int。注意不能像Perona那樣再用num這個變量名了。

1 回復 有任何疑惑可以回復我~
#1

樹上

是int a = num 不是int a = (int)num 么?
2015-06-20 回復 有任何疑惑可以回復我~
#2

onemoo 回復 樹上

賦值(初始化)時會自動進行類型轉換,等號右側的變量類型會臨時轉換成左側的類型(這不會影響右側變量本身的類型),再將其值賦給左側變量。 如果左右類型間無法進行自動轉換就會報錯。 比如: int a = num; num的類型為double,會臨時轉換成int,轉換方法是丟棄浮點部分,結果其值就是2,類型為int。再將這個2作為a的初始化值。 因為double存在著自動轉換為int的規則,所以無需手寫指定轉換類型。
2015-06-20 回復 有任何疑惑可以回復我~
#3

樹上 回復 onemoo

哪種類型無法轉換呢?
2015-06-21 回復 有任何疑惑可以回復我~
#4

onemoo 回復 樹上

目前階段你所學到的類型大多是“算術類型”,比如各種整型(char short int long)和浮點型(float double),它們之間是可以進行轉換的。 因為它們的取值范圍不同,整型還有有無符號的區別,所以它們之間的轉換規則有些復雜,不過它們是完全可以進行轉換的。 “算術類型”屬于“標量類型”,指針也是一種標量類型。而結構體、聯合體、數組類型就算是“非標量類型”了。這里面有些類型也是可以進行轉換的,比如數組就可以隱式轉換為指向數組首元素的指針...
2015-06-21 回復 有任何疑惑可以回復我~
#5

樹上 回復 onemoo

thx
2015-06-22 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

在輸出的時候加上(int)是否可行

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號