和另外一篇栈的生长、存放顺序一样,一般描述栈的方向是相反的,即栈底在下,栈顶在上。注意大小端存储方式,简单讲小端是低字节低地址,高字节高地址,是顺的,大端是反的。
另外,先后声明的变量,是先定义的存高地址,后定义的存低地址。数组,前面元素存低地址,后面高地址,也就是按地址增加存的。类、结构体的元素类似。程序可以改下:
class Test {
public:
int m;
int n;
};
int main()
{
int a;
char b;
int c[10];
Test t;
cout << (size_t)&a << endl;//结果1
cout << (size_t)&b << endl;//结果2
cout << (size_t)&c << endl;//结果3
cout << (size_t)&c[1] << endl;//结果4
cout << (size_t)&t << endl;//结果5
cout << (size_t)&t.m << endl;//结果6
cout << (size_t)&t.n << endl;//结果7
system("PAUSE");
return 0;
}