各位大佬我有一个关于C语言的问题想问一下,代码如下:
#include <stdio.h>
#include <stdlib.h>
int fun(int** q)
{
int s=1000;
*q = &s;
return 0;
}
int main()
{
int* p;
fun(&p);
//指针变量初始化必须指向一个变量的地址,而不是指向一个常量
printf("%d\n", *p);
}
这段代码最后输出1000,说明*p=s,p指向了s。dan我看到别人的博客说一个变量的内存生命周期在函数结束后释放,那么fun()函数中的s变量在函数
fun()调用完毕后不就释放了,那么为什么p指针这里还是能指向s?