Ano ang Memory Address sa C Programming at Paano Ito Mahahanap?

Ano Ang Memory Address Sa C Programming At Paano Ito Mahahanap



Ang termino 'memorya address' sa C programming tumutukoy sa posisyon sa memorya ng computer kung saan itinatago ang data. Sa pinasimpleng termino, a address ng memorya ay tulad ng isang address ng kalye na tumutulong sa computer na ma-access ang nakaimbak na impormasyon nang mas mabilis. Upang maunawaan kung paano nai-save ang data sa memorya ng computer, dapat mong maunawaan ang mga address ng memorya sa C. Mahalagang maunawaan ang konsepto ng memory address sa C dahil ito ay mahalaga sa paglikha ng mahusay na mga programa.

Ano ang Memory Address?

A address ng memorya ay isang hexadecimal na numero na tumutukoy sa lokasyon ng data o pagtuturo ng isang programa sa memorya ng computer at maaaring mahirap para sa mga nagsisimula na maunawaan. Upang direktang basahin at baguhin mga address ng memorya , kailangan ang mga pointer. Upang mahanap ang address ng isang variable, gamitin ang '&' ampersand operator. Mayroong variable ng pointer kung saan nakatago ang address.

Ang pag-unawa kung paano inayos ang memorya ay mahalaga para sa pagkakaroon ng higit na pag-unawa sa mga address ng memorya . Ang mga byte ay bumubuo ng memorya sa C programming, at ang mga address ay nagpapahiwatig kung saan matatagpuan ang simula ng bawat byte. Upang ilagay ito sa ibang paraan, ang bawat byte sa memorya ay may natatangi address ng memorya . Ang isang variable na nag-iimbak ng isang numero ay tumatagal ng isang partikular na halaga ng memory space sa bytes, at ang address ng memorya tumutugma sa paunang byte ng variable.







Paano Maghanap ng isang Memory Address?

Mayroong dalawang paraan na mahahanap natin ang a address ng memorya sa C Programming Language.



Paraan 1: Paggamit ng '&' Operator

Ang '&' operator o simbolo ng ampersand sa C programming ay maaaring gamitin upang mahanap ang isang variable address ng memorya . Kinukuha ng operator na ito ang address ng variable sa loob ng programa. Tingnan ang halimbawa sa ibaba para mas maunawaan ang pamamaraang ito.



#include

int pangunahing ( ) {

int sa isa = 40 ;

printf ( 'Ang halaga ng num ay %d \n ' , sa isa ) ;

printf ( 'Ang memory address ng num ay %p \n ' , at sa isa ) ;

bumalik 0 ;

}

Sa code sa itaas, isang integer variable 'sa isa' na may halagang 40 ay tinukoy. Ang halaga ng 'sa isa' at nito address ng memorya ay pagkatapos ay inilimbag gamit ang printf() function at ang format specifiers %d at %p, ayon sa pagkakabanggit. Ang '&sa isa' ibinabalik ng expression ang address ng memorya ng num, na kasunod na ipinapakita gamit ang %p format specifier sa hexadecimal na format.





Output



Tandaan: Ang parehong paraan ay maaaring sundin para sa paghahanap ng address ng floating-point o string-type na mga variable sa C programming.

Paraan 2: Paggamit ng Pointer

Sa C programming, posible ring matukoy ang address ng memorya gamit ang isang pointer. Ang address ng isang rehiyon ng memorya ay naka-imbak sa isang partikular na uri ng data na tinatawag na pointer sa wikang C. Madalas itong ginagamit sa C upang manipulahin ang memorya ng computer. Upang mahanap ang address ng memorya sa C programming gamit ang pointer, sundin ang mga hakbang na ibinigay sa ibaba:

Hakbang 1: Ang unang hakbang sa paghahanap ng a address ng memorya ay upang lumikha ng isang pointer variable. Upang lumikha ng isang variable ng pointer sa C, ang pangalan ng variable ay pinangungunahan ng isang tanda ng asterisk (*) . Ang code sa ibaba ay nagpapaliwanag kung paano bumuo ng 'ptr' variable ng pointer.

int * ptr ;

Tandaan: Ang lokasyon ng memorya ng variable na naka-save sa pointer variable ay ipinahiwatig ng tanda ng asterisk (*) . Ang prosesong ito ay tinatawag na dereferencing.

Hakbang 2: Ang variable ng pointer ay bibigyan ng lokasyon sa memorya. Ang address ng memorya ng isang umiiral na variable ay itinalaga sa pointer variable gamit ang '&' operator. Narito ang isang simpleng halimbawa:

int ay = 5 ;

int * ptr = at ay ;

Ang sumusunod na halimbawa ay nagpapakita ng a address ng memorya sa C gamit ang a panturo .

#include

int pangunahing ( ) {

int numero = 100 ;

int * ptr = at numero ;

printf ( 'Memory Address ng variable ng numero: %p \n ' , ptr ) ;

bumalik 0 ;

}

Ang code sa itaas ay nagdedeklara ng pointer variable ptr upang ituro ang address ng isang integer variable numero na may halagang 100. Ang printf() Ang function ay pagkatapos ay ginagamit upang i-print ang mga address ng memorya ng isang numero gamit ang %p format specifier, na nagpi-print ng memory address sa hexadecimal na format.

Output

Mahalagang tandaan na ang address ng memorya nagbabago depende sa operating system kung saan tumatakbo ang code. Ang address ng memorya ibinalik sa bawat system ay magkakaiba, halimbawa, kung ang magkaparehong code ay pinapatakbo sa dalawang magkahiwalay na computer. Kaya, inirerekumenda na gumana gamit ang mga kamag-anak na address ng memorya kaysa sa hard-coding mga address ng memorya sa code.

Konklusyon

Sa C programming, mga address ng memorya ay mahalaga para sa pagbabago at pag-access ng data. Para maging matagumpay ang programming, mahalagang maunawaan kung paano maghanap mga address ng memorya . Sa C programming, ginagamit namin ang ampersand operator (&) at isang pointer upang mahanap ang address ng memorya . Bilang mga pointer ay maaaring gamitin upang direktang ma-access at baguhin mga address ng memorya , mahalaga ang mga ito para sa pagpapatupad ng mga programa. Maaaring gamitin ng mga programmer mga address ng memorya upang magsulat ng matagumpay na code sa pamamagitan ng pag-iingat sa mga pangunahing kaalaman na ito.