Funkcja zwracająca adres

0

Dlaczego kompilator tego nie trawi?

int& funkcja_C(void)
{
	
	return &zmienna_kontrolna2;
	
}      

Gdzie zmienna_kontrolna2 jest zmienną globaną.

Błąd: [Error] invalid initialization of non-const reference of type 'int&' from an rvalue of type 'int' *

W funkcji głównej, chcę natomiast wywołać tę funkcję w ten sposób:

cout << "Adres zmiennej kontrolnej 2: " << funkcja_C(); 

Proszę o pomoc.

0

int& funkcja_C(void)
{
return zmienna_kontrolna2;
}

0

Dlaczego taka konstrukcja zwraca mi wartość zmiennej pod tym adresem?

1

jeżeli masz zadeklarowaną:
int zmienna_kontrolna2;
to jak zainicjalizujesz zmienną referencyjną, tak:
int &x=zmienna_kontrolna2;
czy tak:
int &x=&zmienna_kontrolna2;
?
przy zwracaniu dokładnie te same zasady.

0

Ok, rozumiem. Dzięki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.