在这段代码中:
signed char v = -64;
int n = 4;
int x = v - '0' * (signed char)n;
std::cout << x << std::endl;
应该x
是-5
或-261
?在我的理解中,初始化表达式是有signed char
类型的,类型转换应该在初始化初始化计算之后发生。
所以,v - '0' * (signed char)n
应该等于,因为这是估值-5
中的等值。-261
signed char
但是,那段代码打印-261
.