在C语言中,局部变量的作用域只在函数内部,在函数返回后,局部变量的内存就会被释放。
如果函数只是返回局部变量,那么这个局部变量会被复制一份传回被调用处。
但是如果函数返回的是局部变量的地址,那么就会报错,因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放,这样指针指向的内容就是不可预料的内容,程序就会出错。
准确的来说,函数不能通过返回指向栈内存的指针(返回指向堆内存的指针是可以的)。
函数返回值
最新推荐文章于 2022-10-25 17:55:43 发布
在C语言中,局部变量的作用域只在函数内部,在函数返回后,局部变量的内存就会被释放。
如果函数只是返回局部变量,那么这个局部变量会被复制一份传回被调用处。
但是如果函数返回的是局部变量的地址,那么就会报错,因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放,这样指针指向的内容就是不可预料的内容,程序就会出错。
准确的来说,函数不能通过返回指向栈内存的指针(返回指向堆内存的指针是可以的)。