Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Osoitteiden Määrittäminen Pointtereille | Osoittimien Perusteet
Harjoittele
Projektit
Tietovisat & Haasteet
Visat
Haasteet
/
C++-Osoittimet ja Viittaukset
Osio 1. Luku 2
single

single

bookOsoitteiden Määrittäminen Pointtereille

Pyyhkäise näyttääksesi valikon

Osoittimien kanssa työskennellessä oikea alustaminen on tärkeää, jotta ne viittaavat kelvollisiin muistipaikkoihin ja odottamattomalta toiminnalta vältytään.

Osoite- ja dereferenssioperaattorit

Osoittimelle arvon asettamiseksi käytetään osoite (&) -operaattoria ja muistiosoitteen arvon lukemiseksi käytetään dereferenssi-operaattoria.

  • &: osoite-operaattori, palauttaa operandinsa muistiosoitteen;

  • *: dereferenssioperaattori, palauttaa muistiosoitteeseen tallennetun arvon.

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { int variable = 10; std::cout << &variable << std::endl; std::cout << *(&variable) << std::endl; }

Käyttämällä osoite-operaattoria (&) voimme liittää nämä osoitteet pointtereihin, jolloin muodostuu suora yhteys pointterin ja sen osoittaman muistipaikan välille.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Pankkijärjestelmässä jokaisella asiakkaalla on tilin saldo. Tapahtumat, kuten talletukset tai nostot, voivat muuttaa tätä saldoa. Nostot eivät kuitenkaan saa johtaa negatiiviseen saldoon. Kirjoita ohjelma, joka päivittää ja hallinnoi tilin saldoa osoittimien avulla.

Toteutat funktion updateBalance, joka suorittaa tapahtuman muokkaamalla saldoa osoittimen kautta.

  1. Tarkista updateBalance-funktion sisällä, onko tapahtuma nosto, joka johtaisi negatiiviseen saldoon:
    • Jos amount on negatiivinen ja *p_balance + amount < 0, tapahtumaa ei sallita.
    • Palauta tällöin false.
  2. Jos tapahtuma sallitaan, päivitä saldo lisäämällä amount osoittimen kautta *p_balance-muuttujaan.
  3. Palauta true osoittamaan onnistunutta tapahtumaa.

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 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt