Slackware 在这里。我只是在搞乱内存和指针......我想了解更多关于这些的知识,所以我用 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++ 初学者,根本不明白为什么会发生这种情况......我知道这种代码不应该......但是,任何人都可以解释那里发生了什么吗?