图片[1]yxqz数据类型转换yxqz小余塘

作者:余小小

日期:2021-10-02

数据类型转换

数据类型,简单的说,其实是在内存中的一个量杯.通过量杯来确定要装入的数据的大小

从而在内存中开辟相关的内存空间

但是我们是多元化的,有时候需要小数,有时候需要整数,有时候有需要字符,那么刚开始定义的数据类型就不再满足我们要求了

这个时候就可以采取数据类型转换来达到我们的需求

数据类型转换分类:

  • 自动转换

  • 强制转换

自动转换

自动转换,则是c语言由内部机制自动发生的变化,也是对我们的数据进行优化,来让内存空间得到良好的使用.

我们需要明白,知道c语言定义的自动转换规则,这样才不会对我们数据错误的理解.

C 语言中如果一个表达式中含有不同类型数据,在计算时,会将它们自动转换为同一种类型;

在计算时:则是参与四则运算,或者其他的操作运算,关于运算操作,后面详细解释.

要记住:c语言的默认整数类型是int,默认的浮点类型是double

自动转换:由小到大

由小到大:说的是范围,short int long float double,从小的转成大的可以直接转,小杯子中的水用大杯子装也是可以的

int i = 5.5;
/*这里的5.5默认是double类型,
通过C的自动转换机制,会摄取掉小数部分,只保留整数部分*/

 

自动转换只会在某一大类中自动转换,比如基本数据类型的数据,可以互相转换,转换后还是基本数据类型,那么如果向转成狗仔类型,或者指针类型,就需要使用其他方式了

在这里插入图片描述

自动转换规则

浮点数据赋给整数类型,只会保留整数部分;(决定值的是数据类型,而不是值)

#include <stdio.h>
int main()
{
   int a = 1.2;
   printf("十进制:%d",a);
}

 

 

image-20210929151146030

那么我使用%f来占位呢

#include <stdio.h>
int main()
{
   int a = 1.2;
   printf("十进制:%f",a);
}

 

 

发现这里直接打印的double的默认值,浮点型默认是double类型图片[4]yxqz数据类型转换yxqz小余塘

整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;这里还有一点,默认是float类型,但是实际值是double类型

#include <stdio.h>
int main()
{
   int a = 1.2;
   float  b = a;
   printf("b:%f",b);
}

 

image-20210929151401580

char和short在参与运算的时候,自动提升为int类型

#include <stdio.h>
int main()
{
   int a = 1.2;
   char  b = 2;
   printf("a+b=:%d",b+a);
}

 

image-20210929151836076

浮点型(float或者double)和整型一起运算的时候,默认会提升为浮点型

#include <stdio.h>
int main()
{
   int a = 1.2;
   char  b = 2;
   double  c = 1.2;
   printf("a+b+c=:%f",b+a+c);
}

 

 

可以发现,这里的a默认值是int,只保留了整数部分,但是在参与运算的 时候,提升为double,所以是1.0,b也提升为2.0,所以结果是4.2

image-20210929152053772

强制类型转换

有大到小

使用(),在括号里填写需要转换的类型

使用基本数据类型的时候注意,从大范围强制转换为小范围会存在内存溢出的现象

#include <stdio.h>
int main () {
   float  x  = 1.1;
   int y = (int)x;
   printf( "y的值是:%d\n",y);
   return 0 ;
}

 

但是在clion编译器中,没有强转在编译期间并没报错..

 

文章版权声明 1、本网站名称:小余塘
2、本站永久网址:https://www.yxqz.top/
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ2457431511进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容