在这段代码中:
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中的等值。-261signed char
但是,那段代码打印-261.