Mahtavaa!
Completion arvosana parantunut arvoon 4.35single
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;
main.c
12345678#include <stdio.h> int main() { int* pName = NULL; printf("%p\n", pName); // `%p` is a specifier for a pointer return 0; }
Osoiteoperaattori &
Operaattori & palauttaa olion osoitteen:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
Osoitintyypin muuttujaa käytetään tallentamaan osoite, jonka &-operaattori palauttaa.
int variable;
int* pVariable;
pVariable = &variable;
Sisällön purkamiseksi annetusta osoitteesta on käytettävä *-operaattoria osoitintyyppiselle muuttujalle.
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; }
Swipe to start coding
Sinulla on tuote, jolla on tietty hinta, ja sinun tulee kasvattaa sen arvoa annetulla prosenttiosuudella.
Tehtävänäsi on toteuttaa funktio, joka päivittää tuotteen hinnan käyttäen osoitinta.
updatePrice-funktion sisällä:
- Käytä dereferenssioperaattoria (
*) päästäksesi käsiksi muistissa olevaan arvoon — esimerkiksi*priceviittaa arvoon100.0. - Laske nykyisen hinnan prosenttiosuus —
*price * percentIncrease / 100.0, mikä 10 %:lle arvosta 100.0 on10.0. - Lisää tämä prosenttiosuus alkuperäiseen arvoon saadaksesi päivitetyn hinnan —
*price = *price + (percentage part). - Funktio ei palauta mitään — se muokkaa arvoa suoraan osoittimen kautta.
Example
| Initial Price | Increase (%) | Updated Price |
|---|---|---|
| 100.0 | 10.0 | 110.0 |
| 250.0 | 5.0 | 262.5 |
| 80.0 | 25.0 | 100.0 |
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme