国产韩日影视精品_中文字幕一区二区三区在线不卡_久久亚洲综合色一区二区三区 _国产成人久久久

【六六互聯】長期出售【美國抗投訴服務器】【歐洲抗投訴服務器】【亞洲抗投訴服務器】

變量的數據類型是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。

變量的數據類型是可以轉換的

1.自動轉換

自動轉換發生在不同數據類型的量混合運算時,由編譯系統自動完成。自動轉換遵循的規則如圖2-3所示,可以從幾個方面來理解這個規則:

1)若參與運算量的類型不同,則先轉換成同一類型,然后進行運算。

2)轉換按少字節向多字節類型轉換,以保證精度不降低。如short型和long型運算時,先把short型變量轉換成long型后再進行運算。

3)所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。

4char型和short型參與運算時,必須先轉換成int型。

5)在賦值運算中,當“=”兩邊的運算對象類型不相同時,系統自動將“=”右邊表達式的值轉換成左邊變量的類型后再賦值,具體規定如下:

1)實型賦予整型,舍去小數部分;

2)整數賦予實型,數值不變,但增加小數部分(小數部分值為0);

3)字符型賦予整型,由于字符型占一個字節,而整型占四個字節,因此將字符的ASCII碼值放到整型量的低8位,高24位補0

4)整型賦予字符型,只把低8位賦予字符量。

                                         變量的數據類型是可以轉換的               

2-3 類型自動轉換規則

2-11】自動數據類型轉換

#include<stdio.h>

int main()

{

float PI=3.14159;

int s,r=5;

    s=r*r*PI;

printf("s=%d\n",s);

return 0;

}

程序運行結果:

s=78

本例程序中,PI為實型,sr為整型,在執行s=r*r*PI語句時,rPI都轉換成double型計算,結果也為double型,但由于s為整型,故賦值結果仍為整型,舍去了小數部分。

2.強制類型轉換

強制類型轉換是通過類型轉換運算來實現的。

其一般形式為:

(類型說明符) (表達式)

其功能是把表達式的運算結果強制轉換成類型說明符所表示的類型。

例如:

(float) a;  /* a轉換為實型 */

(int)(x+y);  /* x+y的結果轉換為整型 */

3.在使用強制轉換時應注意以下問題:

1)類型說明符和表達式都必須加括號(單個變量可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之后再與y相加了。

2)無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變量的數據長度進行的臨時性轉換,而不改變數據說明時對該變量定義的類型。

2-12】強制數據類型轉換

#include<stdio.h>

int main()

{

float f=5.75;

printf("(int)f=%d,f=%f\n",(int)f,f);

return 0;

}

程序運行結果:

intf=5,f=5.750000

本例表明,f雖強制轉為int型,但只在運算中起作用,是臨時的,而f本身的類型并不改變,因此,(int)f的值為5(刪去了小數),而f的值仍為5.75