函数返回值可不可以是局部变量?

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:42:59
比如
int aaa()
{
int n = 5;
return n;
}
可不可以

程序中返回局部变量存在风险!!!这个风险是指程序在编译时没错,但在运行后会出错!

int aaa()
{
int n = 5;
return n; //值
}

int *bbb()
{
int b[5]={0};
return b;//返回地址,潜在风险!!!
}
void main()
{
int n = aaa();
int *p = bbb();
}

如上举例:局部变量的作用域只在子函数内,在返回后,局部变量的内存已经释放。所以,如果是值的话,不涉及地址,程序不会出错。但是,如果是地址的话,程序会在运行后出错!有时候这个错误不会在运行时马上出现,但是这个错误始终是潜在的风险!!

所以,返回局部变量时一定要注意!

局部变量的什么?值?地址?
////////////////
可以,变量的值

显然可以,函数返回值一般都是局部变量。因为return语句在函数内部。也可以返回全局变量。

不能是局部变量,可以是局部变量的值

在vc++6.0里运行没错