❶ 【C】c語言里強制類型轉化的優先順序
首先一點:強制類型轉換運算符的優先順序大於除法
如果一個運算符兩邊的運算數類型不同,先要將其轉換為相同的類型,即較低類型轉換為較高類型,然後再參加運算,轉換規則如下圖所示:
❷ C語言強制類型轉換的問題。
強制類型轉換不是printf語句默認的動作,正確的是這樣的:
printf("%d\n",(int)a);
否則如果寫printf("%d\n",a);則printf不會做強制數據類型轉換的。
❸ 關於C語言中強制類型轉換的使用
你n轉化成double,C語言中為了提高運算精度,(n-1)*(n+1)也要轉化成double,所以兩個是一樣的
沒差別
❹ 在C語言中的類型轉化原則是什麼
類型轉化的原則是從低級向高級自動轉化(除非人為的加以控制)。計算的轉換順序基本是這樣的:
字元型—→整型—→長整型—→浮點型—→單精度型→雙精度型
就是當字元型和整型在一起運算時,結果為整型,如果整型和浮點型在一起運算,所得的結果就是浮點型,如果有雙精度型參與運算,那麼答案就是雙精度型了。
強制轉換是這樣的,在類型說明符的兩邊加上括弧,就把後面的變數轉換成所要的類型了。
❺ 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語言類型強制轉換
❻ C語言 什麼時候應該使用類型強制轉換
根據具體情況,比如,運算結果有小數,但只要整數,就可以強制轉換了
❼ 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語言中強制類型轉換什麼時候用到
類型轉換有兩種,一種是運算時不必用戶指定,系統自動進行的類型轉換如3+6.5,由於6.5是float型,而3是int型,系統會把3變成float再進行運算。結果是float型。
第二種強制類型轉換。當自動類型轉換不能實現目的時,可以用強制類型轉換。如6.5 % 3,由於%要參加運算的兩側均為整形,自動運算會把3變成float,這樣會出錯,所以用強制類型轉換
int(6.5)% 3
此外,在函數調用時,有時為了使實參與形參類型一致,可以用強制類型轉換運算符得到一個所需類型的參數。
❾ c語言中,強制轉換的變數要不要加括弧,比如int(a),這樣算對嗎
強制轉換類型的格式如(int)a
就是說括弧是加在類型兩邊,而不是變數兩邊
而且,如果是:
(int)a+b 只對a進行了強制類型轉換,
(int)a+(int)b 對a和b進行了強制類型轉換,
(int)(a+b) 對a+b的和進行強制類型轉換