Ⅰ c語言 強制類型轉換運算符
可以利用強制類型轉換運算符將一個表達式轉換成所需類型。例如:
(double)a (將a轉換成double類型)
(int) (x+y) (將x+y的值轉換成int型)
(float)(5%3) (將5%3的值轉換成float型)
其一般形式為
(類型名)(表達式)
注意,表達式應該用括弧括起來。如果寫成
(int)x+y
則只將x轉換成整型,然後與y相加
需要說明的是,在強制類型轉換時,得到一個所需類型的中間變數,而原來變數的類型未發生變化。例如:
a=(int)x
如果已定義x為float類型變數,a為整型變數,進行強制類型運算(int)x後得到一個int類型的臨時值,它的值等於x的整數部分,把它賦給a,注意x的值和類型都未變化,仍為float型。該臨時值在賦值後就不再存在了。
從上可知,有兩種類型轉換,一種是在運算時不必用戶干預,系統自動進行的類型轉換,如3+6.5。第2種是強制類型轉換。當自動類型轉換不能實現目的時,可以用強制類型轉換。如%運算符要求其兩側均為整型量,若x為float型,則x%3不合法,必須用(int)x%3,。強制類型轉換運算符優先於%運算,因此先進行(int)x的運算,得到一個整型的中間變數,然後再對3求余。此外,在函數調用時,有時為了使實參與形參類型一致,可以用強制類型轉換運算符得到一個所需要類型的參數。
Ⅱ 請問C語言如何實現數據類型的強制轉化
C編譯器中整型常量默認為int型,即65這個數是int型的,由於65<127(char型的范圍[-128,127]),可以轉化為char型即char
c=65;合法,使用輸出語句printf("%c",
c);可以輸出他的字元形式即'A'。
對於其他類型的轉換,如果精度不損失可以默認轉換,如:
char
c
=
65;
int
i
=
c;//默認轉換
否者需要強轉,如:
int
i
=
65;
char
c
=
(int)i;//強轉
Ⅲ 【C】C語言里強制類型轉化的優先順序
首先一點:強制類型轉換運算符的優先順序大於除法
如果一個運算符兩邊的運算數類型不同,先要將其轉換為相同的類型,即較低類型轉換為較高類型,然後再參加運算,轉換規則如下圖所示:
Ⅳ c語言強制類型轉換
1、int a;int b;double c = (double) a;double c = (double) b;int a = (int) c;這就是一種強制轉變方法。
Ⅳ C語言強制類型轉換怎麼做
- 01
我們定義三個整型變數a、b、c,其中a=4,b=2,c=a/b。經過分析我們可以知道,若不轉換數據類型,則c=2。
- 02
接著我們輸出c,在輸出語句中對c進行強制轉換,將其由整型轉換為浮點型。
- 03
檢驗程序,沒有錯誤和警告。
- 04
點擊界面上方的"!"運行程序,程序結果如圖所示。可以看到c=2.000000,是一個浮點型的數。
Ⅵ 請問C語言如何實現數據類型的強制轉化
強制類型轉換
當操作數的類型不同,而且不屬於基本數據類型時,經常需要強制類型轉換,將操作數轉化為所需要的類型。強制類型轉換具有兩種形式,稱為顯式強制轉換和隱式強制類型轉換。
1、顯式強制類型轉換
顯式強制類型轉換需要使用強制類型轉換運算符,格式如下:
type(<expression>)
或
(type)<expression>
其中,type為類型描述符,如int,float等。<expression>為表達式。經強制類型轉換運算符運算後,返回一個具有type類型的數值,這種強制類型轉換操作並不改變操作數本身,運算後操作數本身未改變,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述強制類型轉換的結果是將整型值0xab65的高端兩個位元組刪掉,將低端兩個位元組的內容作為char型數值賦值給變數cChar,而經過類型轉換後nVar的值並未改變。
2、隱式強制類型轉換
隱式類型轉換發生在賦值表達式和有返回值的函數調用表達式中。在賦值表達式中,如果賦值符左右兩側的操作數類型不同,則將賦值符右邊操作數強制轉換為賦值符左側的類型數值後,賦值給賦值符左側的變數。在函數調用時,如果return後面表達式的類型與函數返回值類型不同,則在返回值時將return後面表達式的數值強制轉換為函數返回值類型後,再將值返回,如:
int nVar;
double dVar=3.88;
nVar=dVar;//執行本句後,nVar的值為3,而dVar的值仍是3.88
1,若已知x,y為double類型,則表達式:x=1,y=x+3/2結果是多少啊?
因為x,y都是double型,所以執行了y=x+3/2這個語句後,會輸出小樹部分,double型默認的是小數點後幾位我忘了,你自己調試下,就會明白了!
Ⅶ C語言強制類型轉換
強制類型轉換是把變數從一種類型轉換為另一種數據類型。
例如,如果想存儲一個long類型的值到一個簡單的整型中,需要把long類型強制轉換為int類型。可以使用強制類型轉換運算符來把值顯式地從一種類型轉換為另一種類型。
發生在同一個編譯系統中,比如說把int轉化為longint,在VC++6.0裡面,longint和int都是4個位元組,不會有問題的,但是如果把int類型轉化為short類型那就裝不下了,簡而言之就是長類型不能轉化為短類型。
int類型如果要轉化為float、double、longdouble類型的時候只是末尾多了幾個0,但是反之轉化,就會出現數據的損失,小數部位都被省略掉了。
賦值中的類型轉換
當賦值運算符兩邊的運算對象類型不同時,將要發生類型轉換, 轉換的規則是:把賦值運算符右側表達式的類型轉換為左側變數的類型。
由於C語言中的浮點值總是用雙精度表示的,所以float 型數據只是在尾部加0延長為double型數據參加運算,然後直接賦值。double型數據轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。
以上內容參考:網路-C語言類型強制轉換