栈的生长方向分为向上生长和向下生长。
看下图
假定有两个变量a和b,a先入栈,b后入栈。如果a的内存地址大于b的内存地址,
那么栈的开口向下,反之栈的开口向上。
看下面的代码
int a = 10;
int b = 10;
cout << &a << " " << &b << endl; //我这里是看口向下(debug),但release下栈看口向上生长
那么如果在一个开口向下的栈中,数组的内存排列方式也是上面内存地址高
下面内存地址低吗?显然不是。
cout << array << endl;
cout << array + 1 << endl;
所以我们可以得出结论,在栈中,无论开口向上还是向下,数组的内存地址都是从上往下
增加的。