問題說明:
c語言規定,不同型別的資料需要轉換成同一型別後才能進行計算,在整型,實型喝字元型資料之間通過型別轉換便可以進行混合運算。
當混合不同型別的變數進行計算時,便可能會發生型別轉換。
相同型別的資料在轉換時有規律可循,如字元必定先轉換為整數,short型轉化為int型,float型資料在運算時一律轉換為雙精度double型,以提高運算精度。
不同型別的資料發生轉換時,遵循低階型別向高階型別轉換的原則,例如int型資料於double型資料進行運算時,是先將int型資料轉換成double型別,然後再進行運算,結果為double型別。
此外,在乙個賦值語句中,若發生型別轉換,則是賦值語句右部(表示式一側)的值轉換成左部(目標一側)的型別。
程式例項:
#include
void main()
//定義變數並賦初值
int a = 5;
char c = 'a';
float f = 5.3;
double m = 12.65;
double result;
//同型別資料間進行運算並輸出結果
printf("a + c = %d\n",a + c);
printf("a + c = %c\n",a + c);
printf("f + m = %f\n",f + m);
//不同型別資料間進行運算並輸出結果
printf("a + m = %f\n",a + m);
printf("c + f = %f\n",c + f);
//將上述四個變數進行混合 運算,並輸出結果
result = a + c * (f + m);
printf("double = %f\n",result);
程式說明:
程式中分別定義可乙個整型資料a,乙個字元型資料c,以及兩個實型資料f和m。
當整型資料和字元型資料進行運算時,結果會隨輸出格式說明的不同而不同,當結果以整型輸出格式"%d"輸出時,結果為整數,若以字元型輸出格式"%c"輸出時,結果為字元。
當整型資料和雙精度型資料進行運算時,c先將整型資料轉換為雙精度型資料,再進行運算,結果為雙精度型別的資料。同樣,當字元型資料和實型資料進行運算時,c先將字元型資料轉換成實型資料,然後進行計算,結果為實型資料。
當表示式求解時,按運算子的優先順序別的高低次序執行,例如先乘除後加減。若在乙個運算物件兩側的運算子的優先級別相同,那麼按照「自左向右」的方向進行結合,但若在表示式中存在括號,則括號中運算的優先級別最高,最先被執行。
vc資料型別轉換大全 1
vc資料型別轉換大全 2007年07月10日 星期二 18 40 int i 100 long l 2001 float f 300.2 double d 12345.119 char username 程佩君 char temp 200 char buf cstring str variant t...
資料型別 型別轉換
這樣的語句將報錯,因為char型別精度低於int型別,編譯器無法將其自動轉換,只能進行強制轉換 int x 65 char ch char x 舉例1 int age 19 char 女 char result age int 不可以自動轉換成char 精度損失 舉例2 int a 10 int b...
Objective C資料型別 資料型別轉換
資料型別 1.objective c資料型別可以分為 基本資料型別 物件資料型別和id型別。2.基本資料型別有 int float double和char型別。3.物件型別就是類或協議所宣告的指標型別,例如 nsautoreleasepool pool 其中,nsautoreleasepool是乙個...