不能(再次)为签名的短期分配正确的值

The*_* do 0 c++

为什么这个输出为零?我怀疑有些编译器在工作,但为什么呢?

  signed int sint_ = numeric_limits<signed int>::min() << '\n';  
    cout << "signed int: " << sint_ << '\n';
Run Code Online (Sandbox Code Playgroud)

Aas*_*set 20

这是因为<< '\n'第一线意外.其效果是将最小值的位移位13个位置(13为字符代码\n).由于最负值的位模式是1000...0,结果变为0.