Avatar ·

什么是 C++ 中的 unsigned char,它与普通 char 有何不同?

大家好!我开始学习 C++,遇到了一个困惑。在教材中我经常看到 `char` 和 `unsigned char` 类型。乍一看,它们都存储字符,但我感觉它们之间有区别,而且这个区别很重要。 我写了一个简单的例子: ```cpp #include int main() { char c = 255; unsigned char uc = 255; std::cout << "char: " << (int)c << std::endl; std::cout << "unsigned char: " << (int)uc << std::endl; return 0; } ``` 在我的系统(Windows,Visual Studio)上,第一个输出是 -1,第二个是 255。我原以为两者都会是 255。为什么会这样?在哪些情况下应该使用 `unsigned char` 而不是普通的 `char`? 我读到过 `char` 可能是有符号或无符号的,具体取决于编译器,但这听起来有点不确定。我还听说 `unsigned char` 用于处理字节和原始数据,而 `char` 用于文本。但字符不也是字节吗? 请用通俗易懂的方式解释一下,最好有例子。