single
Osoitteiden Määrittäminen Pointtereille
Pyyhkäise näyttääksesi valikon
Osoittimien kanssa työskennellessä oikea alustaminen on tärkeää, jotta ne osoittavat kelvollisiin muistipaikkoihin ja estävät odottamattoman toiminnan.
Osoite- ja dereferenssioperaattorit
Osoittimelle arvon asettamiseksi käytetään osoite (&) -operaattoria ja muistiosoitteen arvon lukemiseen käytetään dereferenssi-operaattoria.
-
&: osoiteoperaattori, palauttaa operandinsa muistiosoitteen; -
*: dereferenssioperaattori, palauttaa muistiosoitteeseen tallennetun arvon.
main.cpp
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.
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.
- Tarkista
updateBalance-funktion sisällä, onko tapahtuma nosto, joka johtaisi negatiiviseen saldoon:- Jos
amounton negatiivinen ja*p_balance + amount < 0, tapahtumaa ei sallita. - Palauta tällöin
false.
- Jos
- Jos tapahtuma sallitaan, päivitä saldo lisäämällä amount arvoon
*p_balanceosoittimen dereferoinnilla. - Palauta
trueosoittamaan onnistunutta tapahtumaa.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme