• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

数据类型自动提升问题

b0ee323c6eda5386 2019-04-13 浏览量:970
我们都知道C语言中的数据当类型不匹配的时候,一个会向另一个类型自动提升,这个提升的过程是怎么样的?刚学习C语言,不是很懂,谢谢
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • c语言中对数据进行加减乘除是有规则的,他们会把数据先变成同一个数据类型,但是变成哪一个类型呢,所以数据类型是有个变化优先级的,把所有操作数变成优先级高的那个进行操作。然后在根据用于存放结果的变量类型来判断是否进行截取
    • 发布于 2019-04-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 比如int和浮点数计算,那么这个int类型的参数会自动转换成浮点数,也就是浮点数和浮点数计算,还有就是double类型高于float
    • 发布于2019-04-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种有两种是显式的转换与隐式的转换,你所说的是隐式的转换,隐式转换要看你的等式的左边的数据类型是什么了
    • 发布于2019-04-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 有一个提升路径(变化优先级),一般就是低精度的向高精度的提升。

    比如同时是long和int,就是int变成long

    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 两个不同精度的数据运算,编译器一般会先将低精度数据变换成高精度数据运算完成后再放到指定变量中,这个结果最好再用强制类型转换控制,以防出问题
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • C语言数据类型从低级向高级分别是charshortintunsigned intlongdouble

    就是说,运算的几个变量中如果不同,那么所有低类型的变量都会自动转换到跟最高的那个一致

    如果运算表达式两端的数据类型不同,右边表达式的结果会转换为左边变量的类型,并赋值过去


    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 不同数据类型占用空间长度是不一样的,低空间占位的可以向高空间转换,从高到底依次是 long double double float unsigned long long long long unsigned long long unsigned int 和 int。
    • 发布于2019-05-07
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

数据类型自动提升问题