C语言(四)隐式类型转换规则
隱式類型轉(zhuǎn)換的規(guī)則
確定二元運(yùn)算中的哪個(gè)操作數(shù)要轉(zhuǎn)換為另一個(gè)操作數(shù)的類型是,其機(jī)制相當(dāng)簡單。其基本規(guī)則是,將值域較小的操作數(shù)類型轉(zhuǎn)換為另一個(gè)操作數(shù)類型,但在一些情況下,兩個(gè)操作數(shù)都要轉(zhuǎn)換類型。
編譯器按順序采用如下規(guī)則,確定要使用的隱式類型轉(zhuǎn)換;
(1)如果一個(gè)操作數(shù)的類型是long double。就把另一個(gè)操作轉(zhuǎn)換為long double類型。
(2)否則,如果一個(gè)操作數(shù)的類型是double,就把另一個(gè)操作轉(zhuǎn)換為double類型。
(3)否則,如果一個(gè)操作數(shù)的類型是float,就把另一個(gè)操作轉(zhuǎn)換為float類型。
(4)否則,如果兩個(gè)操作數(shù)的類型都是帶符號的整數(shù)或無符號的整數(shù)的整數(shù),就把級別較低的操作數(shù)轉(zhuǎn)換為另一個(gè)操作數(shù)的類型。無符號整數(shù)類型的級別從低到高為:siqned char,short,int,long,long long
每個(gè)無符號整數(shù)類型的級別都與對應(yīng)的符號整數(shù)類型相同,所以unsigned int類型的級別與int類型相同。
(5)否則,如果帶符號整數(shù)類型的操作數(shù)級別低于無符號整數(shù)類型的級別,就把帶符號整數(shù)類型的操作數(shù)轉(zhuǎn)換無符號整肅類型。
(6)否則,如果帶符號整數(shù)類型的值域包含了無符號整數(shù)類型所表示的值,就把無符號整數(shù)類型轉(zhuǎn)換為帶符號的整數(shù)類型。
(7)否則,兩個(gè)操作數(shù)都轉(zhuǎn)換為帶符號整數(shù)類型對應(yīng)的無符號整數(shù)類型。
總結(jié)
以上是生活随笔為你收集整理的C语言(四)隐式类型转换规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: seo高手教你seo优化排名该怎么做
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?