Kas yra C++ atminties adresas ir kaip jį rasti?

Kas Yra C Atminties Adresas Ir Kaip Ji Rasti



C++ kalboje atminties adresas yra kintamojo vieta RAM, kurioje saugomi duomenys. RAM (Random Access Memory) yra tam tikra kompiuterio atmintis, kurią galima nuskaityti ir modifikuoti bet kokia seka ir kuri dažnai naudojama darbo duomenims ir mašinų kodams saugoti. Mūsų programose kiekvienas kintamasis yra saugomas RAM ir užima vietos atmintyje. Šie kintamieji turi tam tikrą atminties vietą ir kiekvienas iš jų turi adresą, kurį galima gauti per ampersand (&) operatorius . Šis operatorius nurodo kintamojo atminties adresą ir yra naudingas norint pasiekti ir valdyti toje vietoje saugomus duomenis.

Šiame straipsnyje pateikiamas vadovas, kaip rasti kintamojo atminties adresą C++.

Kaip nustatyti kintamojo atminties adresą C++

C++ kalboje yra du būdai nustatyti kintamojo atminties adresą:







1 būdas: Raskite kintamojo atminties adresą naudodami „adresą“ ir operatorių

Kai mums reikia nustatyti kintamojo atminties adresą, galime naudoti „operatoriaus adresas“ (&) , kuris grąžina kintamojo adresą. Norėdami parodyti kintamojo adresą, naudokite '&' kartu su kintamojo pavadinimu.



Norėdami tai parodyti, naudokite pavyzdinę programą:



#include

naudojant vardų sritį std ;

tarpt pagrindinis ( )

{

tarpt skaičius1 ;

plūdė skaičius2 ;

stygos g ;

cout << 'Įveskite sveikojo skaičiaus reikšmę, kad rastumėte atminties adresą: ' ;

valgymas >> skaičius1 ;

cout << 'Įvestas numeris yra: ' << skaičius1 << endl ;

cout << 'adresas' << skaičius1 << 'yra: ' <<& skaičius1 << endl ;

cout << 'Įveskite dešimtainę reikšmę, kad rastumėte atminties adresą: ' ;

valgymas >> skaičius2 ;

cout << 'Įvestas numeris yra:' << skaičius2 << endl ;

cout << 'adresas' << skaičius2 << 'yra:' <<& skaičius2 << endl ;

cout << „Įveskite eilutę, kad rastumėte jos atminties adresą: ;

valgymas >> g ;

dėl ( tarpt i = 0 ; i < g. ilgio ( ) ; ++ i )

cout << 'adresas' << g [ i ] << 'yra:' << ( tuštuma * ) & g [ i ] << endl ;

grąžinti 0 ;

}

Mūsų kintamųjų etiketės aukščiau pateiktoje programoje yra num1, num2 ir str, su duomenų tipais atitinkamai int, float ir string. Operatorius „&“ naudojamas su kintamojo pavadinimu, norint rasti jo atminties adresą. Reikėtų pažymėti, kad išvestis, kurioje pateikiamas kintamojo adresas, yra atsitiktinai sugeneruotas skaičius.





2 būdas: Raskite kintamojo atminties adresą naudodami žymeklį

C++ kalboje kintamuosius adresus taip pat galima gauti naudojant rodykles. Kintamasis, turintis kito kintamojo adresą, vadinamas rodykle. Rodyklė veikia kaip ir bet kuris kitas kintamasis, kuris turi būti nurodytas prieš jį naudojant. Rodyklė apibrėžiama C++ su '*' operatorius, kartais vadinamas žvaigždutėmis.



Pažiūrėkime į programos pavyzdį, kaip rasti atminties adresą naudojant žymeklį:

#include

#include

naudojant vardų sritį std ;

tarpt pagrindinis ( ) {

tarpt skaičius1 ;

tarpt * ptr_num1 = & skaičius1 ;

plūdė skaičius2 ;

plūdė * ptr_num2 = & skaičius2 ;

stygos g ;

cout << 'Įveskite sveikojo skaičiaus reikšmę, kad rastumėte atminties adresą: ' ;

valgymas >> skaičius1 ;

cout << 'Įvestas numeris yra: ' << skaičius1 << endl ;

cout << 'adresas' << skaičius1 << 'yra: ' << ptr_num1 << endl ;

cout << 'Įveskite dešimtainę reikšmę, kad rastumėte atminties adresą: ' ;

valgymas >> skaičius2 ;

cout << 'Įvestas numeris yra: ' << skaičius2 << endl ;

cout << 'adresas' << skaičius2 << 'yra: ' << ptr_num2 << endl ;

cout << „Įveskite eilutę, kad rastumėte jos atminties adresą: ;

valgymas >> g ;

dėl ( tarpt i = 0 ; i < g. ilgio ( ) ; i ++ ) {

cout << 'adresas' << g [ i ] << 'yra: ' << ( tuštuma * ) & g [ i ] << endl ;

}

grąžinti 0 ;

}

Šios programos kintamųjų etiketės yra num1, num2 ir str, su atitinkamais duomenų tipais int, float ir string. Kintamojo adresas nustatomas naudojant žymeklį kartu su kintamojo pavadinimu. Reikėtų pažymėti, kad išvestis, kurioje pateikiamas kintamojo adresas, yra atsitiktinai sugeneruotas skaičius.

Išvada

Kai deklaruojame bet kokio tipo duomenų kintamąjį C++, operacinė sistema jam priskiria atminties vietą. Ši atminties vieta yra savavališkas skaičius, kuris negali būti neigiamas ir yra žinomas kaip kintamojo adresas. Tam tikrais programavimo scenarijais gali būti naudinga žinoti kintamojo atminties adresą. Šiame straipsnyje iliustravome du būdus, operatoriaus adresas (&) ir rodyklės kintamieji , norėdami nustatyti C++ kintamojo atminties adresą kartu su paprastais pavyzdžiais.