【发布时间】:2009-06-06 15:39:19
【问题描述】:
这个问题只是为了让我更好地理解 C++ 中的静态变量。
我认为如果声明为静态的,我可以返回对 C++ 中的局部变量的引用,因为该变量应该在函数返回后继续存在。为什么这不起作用?
#include <stdio.h>
char* illegal()
{
char * word = "hello" ;
return word ;
}
char* alsoNotLegal()
{
static char * word = "why am I not legal?" ;
return word ;
}
int main()
{
// I know this is illegal
//char * ill = illegal();
//ill[ 0 ] = '5' ;
//puts( ill ) ;
// but why is this? I thought the static variable should "live on" forever -
char * leg = alsoNotLegal() ;
leg[ 0 ] = '5' ;
puts( leg ) ;
}
【问题讨论】:
-
只是让您知道这些是指针,而不是引用。
标签: c++