我刚接触C++,想了解为什么我运行以下代码后会得到A2105376B
:
#include <iostream>
int main(){
std::cout <<'A' << ' ' <<'B'<<std::endl;
return 0;
}
提前感谢!
我刚接触C++,想了解为什么我运行以下代码后会得到A2105376B
:
#include <iostream>
int main(){
std::cout <<'A' << ' ' <<'B'<<std::endl;
return 0;
}
提前感谢!
' '
是一个多字节字符字面值,具有int类型和实现定义的值。
看起来你可能意味着一个单字节字符字面值' '
或一个字符串字面值" "
参考C++标准(2.13.3字符字面值)
2 不以u8, u, U 或者 L开始的字符字面值是一个普通的字符字面值。如果一个普通的字符字面值所包含的c-char可以在执行字符集中表示, 那么它的类型为char,并且它的值等于该c-char在执行字符集中的编码的数值。如果一个普通的字符字面值包含多个c-char,则它是一个多字符 字面值。一个多字符字面值或者一个包含一个不能在执行字符集中表示的单一c-char的普通字符字面值是有条件支持的,具有int类型,并有 一个实现定义的值。
这里是一个演示性程序,如果用三个空格的ASCII值初始化整数对象,则输出该对象。
#include <iostream>
int main()
{
int x= 0x202020;
std::cout << x << '\n';
std::cout << ' ' << '\n';
return 0;
}
2105376
2105376