C++ 算术操作数类型转换
以下代码中的原因:C++ 算术操作数类型转换,c++,C++,以下代码中的原因: short a = 4; char b = 2; cout << sizeof(a/b); 短a=4; 字符b=2; cout它是4,因为表达式a/b的类型是int,而不是short。 摘自C++编程语言书: 在执行算术运算之前,是 用于从较短的整数类型中创建整数 因此,现在(较短的整数)a和b操作数被提升为int类型。因此,整个a/b表达式变为int,并且机器上类型int的大小可能是4个字节 本例中的运算符返回表达式类型的大小,即int,即4。sizeof操作
short a = 4;
char b = 2;
cout << sizeof(a/b);
短a=4;
字符b=2;
cout它是4
,因为表达式a/b
的类型是int
,而不是short
。
摘自C++编程语言书:
在执行算术运算之前,是
用于从较短的整数类型中创建整数
因此,现在(较短的整数)a
和b
操作数被提升为int
类型。因此,整个a/b
表达式变为int
,并且机器上类型int
的大小可能是4个字节
本例中的运算符返回表达式类型的大小,即int
,即4
。sizeof
操作员可以返回:
- 字体的大小
- 表达式类型的大小
这种类型转换不是类型转换,而是整体升级。因为a/b
是一个整数值,sizeof(int)
是4auto c=a/b;难道罗恩的回答没有错。。。但曼迪007的评论更好。你的例子说明了这一点。埃尔杰的评论只是一个“雾天”,现在已更正:)@Ron-已更正。回答很好:)