我只是在研究C
中的程序的内存分配问题。我知道所有的全局变量和静态变量都存储在一个堆中。而且,堆栈存储所有的函数调用。不过,我确实有一个疑问。说我打电话以下功能:带参数调用函数后的栈结构
int ret;
int num = 10;
int arr[3] = {1,2,3};
int *ptr = &arr[0];
ret = giveNumber(num, ptr);
在这里,我读了函数调用giveNumer()
的参数也将存储在同一个堆栈。但是它们按什么顺序存储?如果我弹出堆栈顶部,哪个参数将首先弹出,num
或ptr
?
取决于你的架构并没有任何与你的调试器。 – Mat 2012-04-09 17:12:09