Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Osoittimien Lyhyt Yleiskatsaus | Työskentely Pointtereiden ja Rakenteiden Kanssa
C-Rakenteet
Osio 2. Luku 1
single

single

Osoittimien Lyhyt Yleiskatsaus

Pyyhkäise näyttääksesi valikon

Viittausoperaattori

Osoitin on muuttuja, joka sisältää toisen olion osoitteen.

Viittausoperaattori "*" palauttaa osoitteessa olevan arvon.

Osoittimen määrittely ja alustaminen näyttää tältä:

int* pName = NULL;
pName+kuva
main.c

main.c

12345678
#include <stdio.h> int main() { int* pName = NULL; printf("%p\n", pName); // `%p` is a specifier for a pointer return 0; }

Viittausoperaattori &

&-operaattori palauttaa olion osoitteen:

main.c

main.c

12345678
#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }

Osoitintyyppistä muuttujaa käytetään tallentamaan osoite, jonka &-operaattori palauttaa.

int variable;
int* pVariable;
pVariable = &variable;

Sisällön purkamiseen annetusta osoitteesta käytetään *-operaattoria osoitintyyppiselle muuttujalle.

main.c

main.c

12345678910
#include <stdio.h> int main() { int variable = 1024; int* pVariable = &variable; printf("Address: %p\n", pVariable); // `%p` specifier for a pointer printf("Returned value by address: %d\n", *(pVariable)); // using `*` to pointer return 0; }
Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Sinulla on tuote, jolla on tietty hinta, ja sinun tulee korottaa sen arvoa annetulla prosentilla.
Tehtävänäsi on toteuttaa funktio, joka päivittää tuotteen hinnan käyttäen osoitinta.

updatePrice-funktion sisällä:

  1. Käytä dereferenssioperaattoria (*) päästäksesi käsiksi muistissa olevaan nykyiseen arvoon — esimerkiksi *price viittaa arvoon 100.0.
  2. Laske nykyisen hinnan prosenttiosuus*price * percentIncrease / 100.0, mikä 10 %:n osalta 100.0:sta on 10.0.
  3. Lisää tämä prosenttiosuus alkuperäiseen arvoon saadaksesi päivitetyn hinnan*price = *price + (percentage part).
  4. Funktio ei palauta mitään — se muuttaa arvoa suoraan osoittimen kautta.

Example

Initial PriceIncrease (%)Updated Price
100.010.0110.0
250.05.0262.5
80.025.0100.0

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 2. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt