C语言中的 类型转换
C语言中的类型转换分为隐式类型转换和强制类型转换。
隐式类型转换一般要由低字节转到高字节,否则可能会发生精度降低的情况。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
// 隐式类型转换。
int main(void)
{
int a = 321;
char ch = a;
printf("ch = %d\n", ch);
return EXIT_SUCCESS;
}
在这里,隐式转换就是从高字节到低字节,导致了精度的损失。
强制类型转换的语法: (目标类型)带转换变量
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(int var)
{
//int *p = (int *)malloc(100);
float price = 3.6;
int weight = 4;
//double sum = (int)price * weight;
double sum = (int)(price * weight);
printf("价格:%lf\n", sum);
return EXIT_SUCCESS;
}
输出的结果第一个是12,第二个是14.