スラックウェアはこちら。私はちょうどメモリのものとポインタをいじっていました...私はそれらについてもう少し学びたかったので、C ++で配列を作成し、その中の最初の項目のメモリアドレスを調べました...:
string foo[3] = {"a", "b", "c"};
cout << *(&foo[0]-4) << endl;
これを出力しました: http://pastebin.com/K0HAL5nJ コード全体:
#include <iostream>
using namespace std;
int main()
{
string foo[3] = {"a", "b", "c"};
cout << &foo[0] << " minus " << &foo[1] << " equals " << int(&foo[0])-int(&foo[1]) << endl;
cout << *(&foo[0]-4) << endl;
cout << "Hello world!" << endl;
return 0;
}
私は C++ の完全な初心者であり、なぜこれが発生するのかまったく理解できません... この種のコードは想定されていないことはわかっています... しかし、それでも、そこで何が起こったのか説明してもらえますか?