次のコードの場合、私の 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上。 右: 友人の PC で。
何が起きてる?PC によって結果が異なるのはなぜですか?
PS :
同じ実行可能ファイルを共有しても、結果は異なり
exe
ます (つまり、自分の PC でコンパイルし、両方の PC で実行します)。両方とも、同じプロジェクト キャラクター セットでビジュアル スタジオ 2010 を使用しています。
ここでバッファ オーバーランが発生する可能性がありますが、友人が常にcharを取得する間、常にa を取得するという事実に注意してください。
space
a
私たち二人がそうするなら、それは同じ機能を共有します
cout<<ends
。