Osoittimien Lyhyt Yleiskatsaus
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
Mahtavaa!
Completion arvosana parantunut arvoon 4.35
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