为什么当char
与整型字面量相乘时会发生溢出,而unsigned char
不会,在强制转换为int
或unsigned int
时呢?
#include <memory>
#include <iostream>
using namespace std;
int main(void)
{
char MAX1=200;
unsigned char MAX2=200;
cout << MAX1*3 << endl;
cout << MAX2*3 << endl;
return 0;
}
以上代码输出:
-168
600
(注:该段英文原句中有拼写错误,已做修正)
MAX1
。 - Baum mit Augencout << +MAX1 << "\n";
也可以工作,并且看起来更酷。 ;) - Baum mit Augen