Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tildeling af Adresser til Pointere | Pointere Grundlæggende
C++ Pointers og Referencer
Sektion 1. Kapitel 2
single

single

bookTildeling af Adresser til Pointere

Stryg for at vise menuen

Ved arbejde med pointers er korrekt initialisering vigtig for at sikre, at de peger på gyldige hukommelsesadresser og for at undgå uventet adfærd.

Address-of og Dereference operatorer

For at tildele en værdi til en pointer skal address-of (&) operatoren anvendes, og for at tilgå værdien på hukommelsesadressen skal dereference operatoren bruges.

  • &: address-of operatoren, returnerer hukommelsesadressen for dens operand;

  • *: dereference operatoren, returnerer værdien, der er lagret på hukommelsesadressen.

main.cpp

main.cpp

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

Ved at bruge adresse-operatoren (&) kan vi tildele disse adresser til pointere, hvilket skaber en direkte forbindelse mellem pointeren og den hukommelsesplacering, den peger på.

Opgave

Swipe to start coding

I et banksystem har hver kunde en kontosaldo. Transaktioner såsom indbetalinger eller hævninger kan ændre denne saldo. Dog må hævninger ikke medføre, at saldoen bliver negativ. Skriv et program, der opdaterer og administrerer kontosaldoen ved hjælp af pointers.

Du skal implementere en funktion updateBalance, der udfører transaktionen ved at ændre saldoen gennem en pointer.

  1. Inde i funktionen updateBalance skal du kontrollere, om transaktionen er en hævning, der vil resultere i en negativ saldo:
    • Hvis amount er negativ, og *p_balance + amount < 0, er transaktionen ikke tilladt.
    • Returnér false i dette tilfælde.
  2. Hvis transaktionen er tilladt, opdateres saldoen ved at lægge amount til *p_balance ved hjælp af pointer-dereferering.
  3. Returnér true for at angive en vellykket transaktion.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt