single
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