int main(int argc, char **argv)
{
unsigned char a = 10, b = 100;
std::cout<<sizeof(a-b)<<endl;
return 1;
}
输出结果: 4
返回的数据类型是什么?
int main(int argc, char **argv)
{
unsigned char a = 10, b = 100;
std::cout<<sizeof(a-b)<<endl;
return 1;
}
输出结果: 4
返回的数据类型是什么?
在C++中,算术运算至少使用int
精度。 a
和b
都会提升为int
类型,并且减法的结果也是int
类型。
有一组规则用于确定算术运算所使用的类型;MSDN网站上有一个方便的表格列出了这些规则。
int
类型。 - James McNellissizeof(char) == sizeof(int)
的平台上(我从未在这样的平台上工作过...),这个计算会将它提升为unsigned int
。在16位整数的平台上,unsigned short
也会被提升为unsigned int
(我也从未在这样的平台上工作过)。 - Johannes Schaub - litb