#include <iostream>
int main()
{
int a{500};
unsigned b{1000};
std::cout << a - b << std::endl;
}
结果
int 有符号整数
unsigned 无符号整数
unsigned int 级别高于int a - b 结果自动转化为unsigned int 无符号 结果会变大
#类型转换顺序表
shot 和 char转换时为int计算
隐式转换
#include <iostream>
int main()
{
int a{500};
unsigned b{1000};
a-=b;// a = a -b
std::cout << a - b << std::endl;
}
结果
这里使用赋值运算符 间接性的把unsigned转换为int 属于隐式转换
显示转换
#include <iostream>
int main()
{
int a{500};
unsigned b{1000};
std::cout << (int)(a - b) << std::endl;
}
(int)(a-b)这种转换方式在以后的代码维护中不好替换 C++中使用static_cast<int>方式进行显示转换
#include <iostream>
int main()
{
int a{500};
unsigned b{1000};
std::cout << static_cast<int>(a - b) << std::endl;
}
补充 sizeof()函数 查看类型占用的内存字节
注:带括号的都是函数
#include <iostream>
int main()
{
std::cout << "long占用的内存字节为:" << sizeof(long) << std::endl;
}