由'\\n'所想到的

来源:互联网 发布:wordpress主题 知乎 编辑:程序博客网 时间:2024/06/10 19:09

编译环境: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;}


原创粉丝点击