Osoittimien 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 vastaanottaa kopion datasta. Kaikki funktiossa tehdyt muutokset eivät vaikuta alkuperäiseen muuttujaan.
main.cpp
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
123456789101112#include <iostream> void increment(int* num) { (*num)++; } int main() { int num = 5; int* p_num = # increment(p_num); std::cout << "Original value: " << num << std::endl; }
Voit ohittaa osoittimen luomisen muuttujalle ja käyttää suoraan osoite-operaattoria muuttujaa välitettäessä.
Pyyhkäise aloittaaksesi koodauksen
Kirjoita funktio, joka vaihtaa kahden kokonaislukumuuttujan arvot osoittimien avulla.
- Luo funktio
swap, joka ottaa kaksi osoitinta kokonaislukuihin parametreina. - Käytä funktion sisällä väliaikaista muuttujaa ensimmäisen muuttujan arvon tallentamiseen.
- Aseta toisen muuttujan arvo ensimmäiselle muuttujalle osoitindereferoinnin avulla.
- Aseta väliaikaisessa muuttujassa oleva arvo toiselle muuttujalle osoitindereferoinnin avulla.
- Kutsu
main-funktiossaswap-funktiota, välittäen kahden muuttujan osoitteet.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme