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