对于以下代码,在我的 PC 上,char\0
总是会产生一个空格(使用 打印时cout
)。但是,在我朋友的 PC 上, char 的结果\0
总是会导致 char a
。代码和截图如下:
#include <iostream>
using namespace std;
// Function main
int main()
{
cout << "xxx" << '\0' << "yyy" << endl;
return 0;
}
左:在我的电脑上。 对:在我朋友的电脑上。
这里发生了什么?为什么不同PC上的结果不同?
PS:
exe
即使我们共享相同的可执行文件(即在我的 PC 上编译并在两台 PC 上运行),结果仍然会有所不同。我们都使用具有相同项目字符集的 Visual Studio 2010。
这里可能有一些缓冲区溢出,但请注意我总是会得到一段
space
时间,我的朋友总是会得到一个 chara
。如果我们都这样做,它具有相同的功能
cout<<ends
。