Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Osoittimien Käyttötapaukset | Section
C++-Osoittimet ja Viittaukset
Osio 1. Luku 4
single

single

bookOsoittimien Käyttötapaukset

Pyyhkäise näyttääksesi valikon

Kun välität muuttujan funktiolle, välität käytännössä sen arvon. Tämä tarkoittaa, että funktio saa kopion datasta. Kaikki funktiossa tehdyt muutokset eivät vaikuta alkuperäiseen muuttujaan.

main.cpp

main.cpp

copy
12345678910
#include <iostream> void increment(int num) { num++; } int main() { int num = 5; increment(num); std::cout << "Original value: " << num << std::endl; }

Pointtereita voidaan käyttää mahdollistamaan, että funktio muuttaa alkuperäistä muuttujaa. Tämä tapahtuu välittämällä muistiosoite argumenttina varsinaisen arvon sijaan.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> void increment(int* num) { (*num)++; } int main() { int num = 5; int* p_num = &num; increment(p_num); std::cout << "Original value: " << num << std::endl; }
Note
Huomio

Voit ohittaa osoittimen luomisen muuttujalle ja käyttää suoraan osoite-operaattoria kun välität muuttujaa.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Kirjoita funktio, joka vaihtaa kahden kokonaislukumuuttujan arvot osoittimien avulla.

  1. Luo funktio swap, joka ottaa kaksi osoitinta kokonaislukuun parametreina.
  2. Käytä funktion sisällä väliaikaista muuttujaa ensimmäisen muuttujan arvon tallentamiseen.
  3. Aseta toisen muuttujan arvo ensimmäiselle muuttujalle osoittimen dereferoinnin avulla.
  4. Aseta väliaikaisesta muuttujasta arvo toiselle muuttujalle osoittimen dereferoinnin avulla.
  5. Kutsu main-funktiossa swap-funktiota välittämällä kahden muuttujan osoitteet.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt