c语言 | 您所在的位置:网站首页 › c自动类型转换 › c语言 |
目录 一、自动类型转换规律 二、强制类型转换 一、自动类型转换规律不同的基本数据类型在进行混合计算时,计算机会进行自动类型转换,规律如下: 根据上图,在多种类型数据混合计算中,计算机中自动将所有数据转换成等级更高的数据类型,由低字节数据类型向高字节数据类型即图中从下向上自动转换。 计算结果向高等级对齐!定点存储向浮点存储对齐!有符号向无符号转换! 二、强制类型转换如果不想进行自动类型转换,我们可以自行定义类型即强制类型转换 强制类型转换的写法:(数据类型)表达式 int a = 3.14; //自动类型转换 int b = (int)3.14; //强制类型转换(float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为整型. #include int main() { printf("强制转换为float4字节类型:%d\n", sizeof((float)3 + 8LL)); printf("%d %f 转换为double8字节:%d\n", 7 / 2, (double)7 / 2,sizeof((double)7 / 2));//强制类型转换 printf("单引号下字符A为int类型,通过char强制转换为char类型1个字节:%d\n", sizeof((char)'A')); printf("由整数8向浮点数强制转换结果为float类型:%f 括号优先级高,先整型会舍去小数:%f\n", (float)8 / 3, (float)(8 / 3)); return 0; }
注:自动类型转换和强制类型转换都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。因为那块内存本来就存的那个数,只是换个形式使用而已。 |
CopyRight 2018-2019 实验室设备网 版权所有 |