在C语言中为什么说绝不能返回函数内局部变量的地址

2025-02-19 02:54:42
推荐回答(3个)
回答1:

在程序中,只在特定的过程或函数中可以访问的变量,是相对与全局变量而言的。

全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。

局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

上面是摘抄

局部变量的特点是:随函数调用时创建 随函数结束时析构(销毁)

设想 如果返回了一个局部变量的指针
而恰好 局部变量偏偏又在函数结束后销毁
但指针并没有被销毁 而是被返回
那也就是说 指针指向的 正是一个被销毁了的对象

回答2:

就好比你的指针指向了一块蛋糕
蛋糕在函数进入时被做出来了
结果呢 蛋糕偏偏又在函数结束时被吃掉了
可它又把指向那个已经成了空蛋糕的指针给了你

你说 你还能再吃吗?^_^

回答3:

椎的栈的区别