C语言学习笔记之(数据类型转换)
一、C语言常见的数据类型
int a; /*定义整型变量a*/
float b; /*定义单精度型变量b*/
double c; /*定义双精度型变量c*/
a=1; /*给变量a赋值*/
b=2.1; /*给变量b赋值*/
c=3.2; /*给变量c赋值*/
二、数据类型的权重
计算a+b+c时,先将变量a和变量b都转成double型,然后计算,所得结果为double型,各种类型转换方向如图所示。
float
|
|
V
char,short --> int --> unsigned --> long --> double(权重最高)
1.不同数据类型之间的自动转换
#include <stdio.h>
int main()
{
int a; /*定义整型变量a*/
float b; /*定义单精度型变量b*/
double c,e; /*定义双精度型变量c和e*/
int d; /*定义整型变量d*/
a=1; /*给变量a赋值*/
b=2.1; /*给变量b赋值*/
c=3.2; /*给变量c赋值*/
d=a+b+c; /*将a+b+c的结果赋给整型变量d*/
e=a+b+c; /*将a+b+c的结果赋给双精度型变量e*/
printf("d=%d,e=%f\n",d,e); /*输出d和e的值*/
return 0; /*函数返回值0*/
}
//运行结果如下
d=6,e=6.300000
三、强制数据类型转换
#include <stdio.h>
int main()
{
int a=2; /*定义整型变量a,其初值为2*/
float b=2.78,c=5.2456; /*定义单精度型变量b=2.78,c=5.2456*/
a=2+(int)c; /*计算a的值*/
b=(int)(1.56+a); /*计算b的值*/
printf("a=%d,b=%f,c=%f\n",a,b,c); /*输出a,b,c的值*/
return 0; /*函数返回值0*/
}
//输出结果如下
a=7,b=8.000000,c=5.245600
在程序第6行中,将单精度型变量c强制转换为整型,即取5.2456的整数部分5,加2得到的值赋给变量a,所以a等于7,但c仍然为单精度型。在程序第7行中,1.56+a的结果为8.56,将其强制转换为整型,即结果为8,但b仍为浮点型,所以其值为8.000000(遵循了隐式类型转换原则)。
C语言学习笔记之(数据类型转换)
https://www.wsjj.top/archives/c3
评论