从函数发送指针

时间:2012-05-03 12:38:51

标签: c variables pointers parameter-passing

这只是我想知道的事情。 那么这里, 假设我在函数中声明了一个变量,我将此变量作为指向另一个函数的指针传递。 当第一个函数(声明变量的地方)结束时,此变量会发生什么? 它是保留在堆栈上还是在函数结束时被删除了?

提前致谢= D

3 个答案:

答案 0 :(得分:4)

当您定义变量的函数返回时,变量将被销毁,除非您将其声明为静态。检查C中的存储类。这是一个指针:http://aelinik.free.fr/c/ch14.htm

答案 1 :(得分:1)

当第一个函数结束时,变量被销毁,因此指针变为无效。

答案 2 :(得分:1)

如果您在堆栈上声明此变量,它将消失:

void foo()
{
    int varInStack;
    foo2(&varInStack);

    // when foo returns, you loosed your variable.
}

你可以退货:

int foo()
{
    int varInStack;
    foo2(&varInStack);

    return varInStack;
}