#include <iostream>
//隐式转换 强制转换
void main()
{
int a;
int b;
//sizeof(A) 是计算 括号中的类型 所占用的字节数的
//A部分 可以写类型 可以写变量 可以写表达式
//类型 和 变量 最终获取的都是 类型
//表达式 会先得到结果 然后 获取结果的类型
b = sizeof(int);
b = sizeof(a);
b = sizeof(1 + 1);
//隐式转换
char c = 1; //此处有一次 隐式转换 int 被转换为 char 多余的字节被忽略
short s = 2;
//隐式转换 只要类型参与运算 那么 参与运算的类型就会被统一
//1)如果参与的类型 没有比int 类型更大的 那么 统统会转成 int 类型
//2)如果参与类型 有比 int 大的类型 那么所有参与者中 谁最大就统一转换成谁
//3)如果类型的字节数 和 int 一样 那么 谁的精度高 就转换成 谁
b = sizeof(c + s);
b = sizeof(s + 1.5f);
short d = c + s; //此处会 隐式转换 3次 c 转 int s 转 int
//计算结果 为 int 赋值 给 d 会 转为 short
//强制转换
d = 100;
std::cout<<d<<"\n";
//此处就是强制转换了 d 变量 为 char 类型
//但是 只有这句代码有效 过后 d 还是 short 类型
//一个变量一旦定义好以后 其类型永远无法改变
std::cout<<(char)d<<"\n";
system("pause");
}