Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Viittaus vs. Osoittimet | Viitteiden Perusteet
C++-Osoittimet ja Viittaukset

bookViittaus vs. Osoittimet

Pyyhkäise näyttääksesi valikon

Viitteet ja osoittimet mahdollistavat epäsuoran pääsyn muuttujien arvoihin, mutta niillä on joitakin keskeisiä eroja sekä etuja ja haittoja.

Syntaksi

  • Osoittimet määritellään käyttämällä *-symbolia;

  • Viitteet määritellään käyttämällä &-symbolia.

Alustus

Et voi määritellä tyhjää viitettä. Mutta voit määritellä tyhjän osoittimen käyttämällä nullptr.

Uudelleenosoitus

Viitteitä ei voi uudelleenosoittaa viittaamaan toiseen olioon.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }

Pointterit voidaan uudelleenosoittaa osoittamaan eri muistipaikkoihin.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }

Arvon käsitteleminen

Osoittimen osoittamaan arvoon pääsee käsiksi käyttämällä dereferenssioperaattoria *. Viitteiden kohdalla erityistä operaattoria ei tarvita; viite muuttujaa käytetään suoraan.

Sekä osoittimet että viitteet ovat keskeisiä muistin hallinnassa ja lisäävät ohjelmien joustavuutta. Käyttötarkoitus riippuu kontekstista.

question mark

Mikä koodiesimerkki osoittaa oikein, että osoitin voidaan uudelleensijoittaa osoittamaan toiseen muuttujaan, mutta referenssiä ei voi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 3
some-alt