c语言中关于隐式类型转换的相关说明以及用法

来源:互联网 发布:windows phone 小米 编辑:程序博客网 时间:2024/06/05 17:55
隐式类型转换

1.C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为“整型提升”;

2.c语言中关于类型转换的相关规定:

(1)若任意一个操作数的类型为long double,则表达式中其他操作数都转化为long double类型;
(2)若任意一个操作数的类型为double,则表达式中其他操作数都转化为double类型;
(3)若任意一个操作数的类型为float,则表达式中其他操作数都转化为float类型;
(4)若任意一个操作数的类型为unsigned long int,则表达式中其他操作数都转化为unsigned longint类型;
(5)若任意一个操作数的类型为long int,其他操作数中有unsigned int, 如果longint能容纳unsigned int所有的值,那么unsigned int转化为long int类型,如果long int不能容纳   unsigned int的值,那么所有的类型都转化为long int类型;
(6)若任意一个操作数的类型为long int,则其他操作数都转化为long int类型;

(7)若任意一个操作数的类型为unsigned int,则其他操作数都转化为unsigned int。

3.案列分析:

#include"stdio.h"
int main()
{
    char a = 127;
    char b = 3;
    char c = 0;
    c = a + b;
    printf("%d %d\n",c,a+b);
    return 0;
}

运行结果为:-126,130




原创粉丝点击