我想用这个 ASCII 码初始化这个 char 向量:
vector <char> a = { 201, 187, 200, 188, 205, 186 };
我在所有 6 个字符中都得到了这个语法错误:
从“int”到“char”的无效缩小转换:常量值不适合目标类型
但是当我使用相同的 ASCII 代码初始化单个 char 变量时:
char b = 201;
它工作正常。
所以我意识到在向量中,由于某种原因,char 类型可以接收 int 值,直到 127。从 128 开始出现语法错误。
这与普通变量不同,当 char 类型可以接收任何 int 值时。
我尝试将向量声明为无符号字符,语法错误消失了。
vector <unsigned char> a = { 201, 187, 200, 188, 205, 186 };
但还是,
为什么 char 类型向量不能接收与 char 类型变量相同的 int 数据?
我真的很感激有人向我解释这种行为。