函数返回局部变量,是返回局部变量的值。但指针(或地址)是一种特殊的值,所以返回局部指针变量需要特别注意。正确情况下,作为函数返回值的局部指针,其所指向对象的作用域应该是调用者作用域、全局或静态常量区;指向栈空间对象的指针作为返回值,存在潜在的错误。
1. 返回局部值变量
函数返回时,将返回a的副本(值),然后a被注销,所以不存在问题。
2. 返回局部指针变量
2.1 返回局部指针执行调用者作用域的对象
函数返回局部变量,是返回局部变量的值。但指针(或地址)是一种特殊的值,所以返回局部指针变量需要特别注意。正确情况下,作为函数返回值的局部指针,其所指向对象的作用域应该是调用者作用域、全局或静态常量区;指向栈空间对象的指针作为返回值,存在潜在的错误。
1. 返回局部值变量
函数返回时,将返回a的副本(值),然后a被注销,所以不存在问题。
2. 返回局部指针变量
2.1 返回局部指针执行调用者作用域的对象