基本數據類型轉換
介紹:當 C 程序在進行賦值或者運算時,精度小的類型自動轉換爲精度大的數據類型,這個就是自動類型轉換。ide
#include<stdio.h> void main(){ char c1 = 'a'; int num1 = c1;//ok double d1 = num1;//ok short s1 = 10; int num2 = 20; int num3 = s1 + num2; printf("d1=%f \n",d1); printf("num3=%d",num3); getchar(); }
#include<stdio.h> void main(){ float f1 = 1.1f; double d2 = 4.58667435; f1 = d2;//出現精度損失(double->float) printf("f1=%.8f",f1); getchar();
(類型名) 表達式
什麼是表達式: 任何有值均可以稱爲表達式,好比 1+ 2, int num = 23d
#include<stdio.h> void main(){ double d1 = 1.934; int num1 = (int)d1;//注意:不進行四捨五入,而是直接截斷小數點的部分 printf("num1=%d d1=%f",num1,d1); getchar(); }
int num2 = (int)3.5 * 10 + 6 * 1.5; // 3 * 10 + 6 * 1.5 = 30+9.0 = 39.0 printf("\n num2=%d",num2);
int num3 = (int)(3.5 * 10 + 6 * 1.5); // 35.0+9.0=44.0 printf("\n num3=%d",num2);
char c = 'a'; int i = 5; float d = .314F; double result = c+i+d; // c+i+d 類型是 float -> double ok
#include <stdio.h> void main() { char c = 'a'; int i = 5; float d = .314F; double d2 = 1.0; //double result = c+i+d; // float -> double char result = c+i+d+d2; // 提示? // 警告 double -> char }