Этот вопрос предназначен только для моего лучшего понимания статических переменных в C++.Возвращая ссылку на статическую локальную переменную в 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) ;
}
Просто так вы знаете, что это указатели, а не ссылки. – Zifre