算术操作数类型转换

问题描述 投票:1回答:1

为什么在以下代码中:

short a = 4;
char b = 2;
cout << sizeof(a/b);

sizeof(a / b)是4?为什么2不如short的大小?

c++
1个回答
0
投票

摘自C ++书:

[执行算术运算之前,先进行积分提升用于从较短的整数类型中创建整数。

a/b表达式的类型为int,并且在您的计算机上,int类型的大小可能为4。在您的情况下,sizeof运算符返回表达式类型的大小,即int,即4。操作员返回:

  • 类型的大小
  • 表达式类型的大小
© www.soinside.com 2019 - 2024. All rights reserved.