编译环境:vs2008(XP)
#include <iostream>
using namespace std;
int main()
{
cout<<'\\n'<<endl;
return 0;
}
代码如上,结果是23662(5C6Eh);
'\\n'中经过编译器解析后内存实际的内容是'\n',因为'\'的Assic码是5Ch(十进制92),'n'是6Eh(十进制110)
#include <iostream>
using namespace std;
int main()
{
cout<<'abcd'<<endl;
return 0;
}
结果是1633837924(61626364h);
'abcd'内存布局是61626364,刚好是a、b、c、d的Assic值
#include <iostream>
using namespace std;
int main()
{
cout<<'abcde'<<endl;
return 0;
}
结果显示错误:常量中的字符太多。
结论:'abcd'会被编译器解析为61626364h,即依次在内存中排列a、b、c、d的assic码;但是''中的内容加起来不能超过4字节。
拓展:
试一试下面的程序:
#include <iostream>
using namespace std;
int main()
{
cout<<'我是谁'<<endl;
return 0;
}