不同的编译器对此有不同的处理,
char t = 'AB';
比如GCC就是取t='B'就是最后的那个字符,而有些编译器是取'A'。但是基本上所有的编译器都不会对此报错
至于第2个问题嘛,cout可不可以我不知道,不过printf()是可以的
printf("%#06x",c);
#表示在前面加上0x标志
06表示数据占6位(包括0x),并补上0
x表示16进制
下面的是可以输出0x0041的
#include
#include
#include
int main()
{
wchar_t c = L'A';
wchar_t *p = &c;
printf("%#06x",c);
return 0;
}
char t = 'AB';
不会报错,但会给出警告信息,等价于
char t = 'A';
char t = 'B';
所以会是B,即最后一个char
你可以改成
#include
cout<