问答详情
源自:5-2 指针运算

变量存储在栈的问题#

变量存储在栈中不是按顺序从大到小么!那指针往后移动时地址变大,怎么能把后面的变量输出呢??

提问者:nobody_0005 2015-10-28 21:32

个回答

  • xueling
    2016-06-04 10:04:27

    回复 onemoo:关于你说的“给array[2]赋值就已经访问越界了,代码可能根本就无法运行。”,事实上,C语言对数组下标越界不会做检查,所以完全可能运行。

  • onemoo
    2015-10-29 14:32:50

    先吐槽:用这么bug的代码作示例真的好吗!?

    给array[2]赋值就已经访问越界了,代码可能根本就无法运行。

    C标准不保证内存中 a b 和数组是紧邻的,也不保证 a b 和数组在内存中的先后顺序。

    唯一能确定的是数组中的元素在内存中是紧邻且递增的,也就是 array[0] 后面一定是 array[1]。