Tento článek poskytuje návod, jak najít adresu paměti proměnné v C++.
Jak určit adresu paměti proměnné v C++
V C++ existují dvě metody pro určení adresy paměti proměnné:
Metoda 1: Najděte adresu paměti proměnné pomocí „adresy“ a operátora
Když jsme povinni určit paměťovou adresu proměnné, můžeme použít 'adresa provozovatele' (&) , která vrací adresu proměnné. Chcete-li zobrazit adresu proměnné, použijte '&' spolu s názvem proměnné.
Použijme ukázkový program, který to demonstruje:
#include
pomocí jmenného prostoru std ;
int hlavní ( )
{
int číslo1 ;
plovák číslo2 ;
řetězec str ;
cout << 'Zadejte prosím celočíselnou hodnotu pro zjištění adresy paměti: ' ;
jíst >> číslo1 ;
cout << 'Zadané číslo je:' << číslo1 << endl ;
cout << 'Adresa' << číslo1 << ' je: ' <<& číslo1 << endl ;
cout << 'Zadejte prosím desetinnou hodnotu pro zjištění adresy paměti: ' ;
jíst >> číslo2 ;
cout << 'Zadané číslo je:' << číslo2 << endl ;
cout << 'Adresa' << číslo2 << ' je :' <<& číslo2 << endl ;
cout << 'Zadejte prosím řetězec pro nalezení adresy paměti: ' ;
jíst >> str ;
pro ( int i = 0 ; i < str. délka ( ) ; ++ i )
cout << 'Adresa' << str [ i ] << ' je :' << ( prázdnota * ) & str [ i ] << endl ;
vrátit se 0 ;
}
Naše štítky proměnných ve výše uvedeném programu jsou num1, num2 a str s datovými typy int, float a string. Operátor ‚&‘ se používá s názvem proměnné k nalezení adresy paměti. Je třeba poznamenat, že výstup, který poskytuje adresu proměnné, je náhodně generované číslo.
Metoda 2: Najděte adresu paměti proměnné pomocí ukazatele
V C++ lze proměnné adresy získat také pomocí ukazatelů. Proměnná, která obsahuje adresu jiné proměnné, se nazývá ukazatel. Ukazatel slouží jako jakákoli jiná proměnná, která musí být specifikována, než ji lze použít. Ukazatel je definován v C++ pomocí '*' operátor, někdy známý jako operátor hvězdička.
Podívejme se na ukázkový program pro nalezení adresy paměti pomocí ukazatele:
#include#include <řetězec>
pomocí jmenného prostoru std ;
int hlavní ( ) {
int číslo1 ;
int * ptr_num1 = & číslo1 ;
plovák číslo2 ;
plovák * ptr_num2 = & číslo2 ;
řetězec str ;
cout << 'Zadejte prosím celočíselnou hodnotu pro zjištění adresy paměti: ' ;
jíst >> číslo1 ;
cout << 'Zadané číslo je:' << číslo1 << endl ;
cout << 'Adresa' << číslo1 << ' je: ' << ptr_num1 << endl ;
cout << 'Zadejte prosím desetinnou hodnotu pro zjištění adresy paměti: ' ;
jíst >> číslo2 ;
cout << 'Zadané číslo je:' << číslo2 << endl ;
cout << 'Adresa' << číslo2 << ' je: ' << ptr_num2 << endl ;
cout << 'Zadejte prosím řetězec pro nalezení adresy paměti: ' ;
jíst >> str ;
pro ( int i = 0 ; i < str. délka ( ) ; i ++ ) {
cout << 'Adresa' << str [ i ] << ' je: ' << ( prázdnota * ) & str [ i ] << endl ;
}
vrátit se 0 ;
}
Označení proměnných v tomto programu jsou num1, num2 a str s datovými typy int, float a string. Adresa proměnné je určena pomocí ukazatele spolu s názvem proměnné. Je třeba poznamenat, že výstup, který poskytuje adresu proměnné, je náhodně generované číslo.
Závěr
Když v C++ deklarujeme proměnnou libovolného datového typu, operační systém jí přiřadí paměťové místo. Toto paměťové místo je libovolné číslo, které nemůže být záporné a je známé jako adresa proměnné. Znalost adresy paměti proměnné může být užitečná v určitých programovacích scénářích. V tomto článku jsme ilustrovali dvě metody, tzv adresa provozovatele(&) a ukazatelové proměnné , k určení adresy paměti proměnné v C++ spolu s jednoduchými příklady.