Operator naslova & v C
The Operator naslova v C je poseben unarni operator, ki vrne naslov spremenljivke. Označena je kot Simbol ampersand ( & ) . Ta operator vrne celoštevilsko vrednost, ki je naslov njegovega operanda v spominu. Operator naslova (&) lahko uporabimo s poljubnimi spremenljivkami, nizi, funkcijami in celo kazalci.
Sintaksa
Operator naslova se običajno uporablja kot predpona njegovemu operandu:
& operand
kje operand je lahko spremenljivka, niz, funkcija, kazalec itd.
Operator naslova v C
Primeri naslovnih operaterjev
Primer 1:
Preprost primer C za prikaz uporabe operaterja naslovov v našem programu.
C
// C program to illustrate the use of address operator> #include> > int> main()> {> > // declaring a variable> > int> x = 100;> > > // printing the address of the variable> > printf> (> 'The address of x is %p'> , &x);> > return> 0;> }> |
Izhod
The address of x is 0x7fffe8f5591c
Pojasnilo
Spremenljivka x je bilo definirano in inicializirano z vrednostjo 100 v zgornjem programu. Naslov te spremenljivke x smo pridobili z uporabo operaterja naslova (&) kot predpone in ga natisnili s funkcijo printf().
Opomba: Specifikator formata %p za tiskanje naslova v šestnajstiški obliki.
Na splošno je vrednost, ki jo vrne operater naslova, shranjena v kazalec in nato se kazalec dereferencira, da dobi vrednost, shranjeno na tem naslovu.
Primer 2:
Uporaba kazalca za shranjevanje naslova, ki ga vrne operater naslova, in nato dereferenciranje.
C
// C program to illustrate the use of address operator with> // pointer> #include> > int> main()> {> > // integer variable> > int> x = 1;> > // integer pointer> > int> * ptrX;> > // pointer initialization with the address of x> > ptrX = &x;> > > // accessing value of x usin pointer> > printf> (> 'Value of x: %d
'> , *ptrX);> > > return> 0;> }> |
Izhod
Value of x: 1
Primer 3:
Nekatere standardne funkcije, kot je scanf(), zahtevajo tudi naslov spremenljivke. V teh primerih uporabljamo operater naslova.
C
// C Program to illustrate the use of address operator with> // scanf()> #include> > int> main()> {> > // defining variable> > int> number;> > > printf> (> 'Enter any number: '> );> > // using adress operator & in scanf() to get the value> > // entered by the user in the console> > scanf> (> '%d'> , &number);> > > // priting the entered number> > printf> (> 'The entered number is: %d'> , number);> > return> 0;> }> |
Izhod
Enter any number: 10 The entered number is: 10
Nezdružljive entitete naslovnega operaterja v C
Obstaja nekaj entitet v C, za katere ne moremo uporabiti naslovnega operaterja, tj. ne moremo dobiti naslovov teh entitet v C. Nekateri od njih so:
- Registrirajte spremenljivke
- Bitna polja
- Literali
- Izrazi
Uporaba operaterja naslovov (&):
Operator naslova (&) se pogosto uporablja v programih C za pridobivanje naslovov različnih entitet. Nekatere glavne in najpogostejše aplikacije so:
- Posredovanje kazalcev kot funkcijskih argumentov
- Aritmetika kazalca
- Implementacija podatkovnih struktur