Kort Oversigt over Pointers
Dereference-operatoren
En pointer er en variabel, der indeholder adressen på et andet objekt.
Dereference-operatoren "*" returnerer værdien, der er gemt på adressen.
Deklaration og initialisering af en pointer ser således ud:
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; }
Refereringsoperatoren &
Operatoren & returnerer adressen på et objekt:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
En variabel af pointertypen bruges til at gemme adressen, som returneres af &-operatoren.
int variable;
int* pVariable;
pVariable = &variable;
For at udpakke indholdet på den angivne adresse skal du bruge *-operatoren på en variabel af pointertypen.
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
Du har et produkt med en bestemt pris, og du skal øge dens værdi med en given procent.
Din opgave er at implementere en funktion, der opdaterer produktets pris ved hjælp af en pointer.
Inde i updatePrice-funktionen:
- Brug dereference-operatoren (
*) til at få adgang til den aktuelle værdi, der er gemt i hukommelsen — for eksempel refererer*pricetil100.0. - Beregn procentdelen af den nuværende pris —
*price * percentIncrease / 100.0, hvilket for 10% af 100.0 svarer til10.0. - Læg denne procentdel til den oprindelige værdi for at få den opdaterede pris —
*price = *price + (percentage part). - Funktionen returnerer ikke noget — den ændrer værdien direkte via pointeren.
Example
| Initial Price | Increase (%) | Updated Price |
|---|---|---|
| 100.0 | 10.0 | 110.0 |
| 250.0 | 5.0 | 262.5 |
| 80.0 | 25.0 | 100.0 |
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 4.35
Kort Oversigt over Pointers
Stryg for at vise menuen
Dereference-operatoren
En pointer er en variabel, der indeholder adressen på et andet objekt.
Dereference-operatoren "*" returnerer værdien, der er gemt på adressen.
Deklaration og initialisering af en pointer ser således ud:
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; }
Refereringsoperatoren &
Operatoren & returnerer adressen på et objekt:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
En variabel af pointertypen bruges til at gemme adressen, som returneres af &-operatoren.
int variable;
int* pVariable;
pVariable = &variable;
For at udpakke indholdet på den angivne adresse skal du bruge *-operatoren på en variabel af pointertypen.
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
Du har et produkt med en bestemt pris, og du skal øge dens værdi med en given procent.
Din opgave er at implementere en funktion, der opdaterer produktets pris ved hjælp af en pointer.
Inde i updatePrice-funktionen:
- Brug dereference-operatoren (
*) til at få adgang til den aktuelle værdi, der er gemt i hukommelsen — for eksempel refererer*pricetil100.0. - Beregn procentdelen af den nuværende pris —
*price * percentIncrease / 100.0, hvilket for 10% af 100.0 svarer til10.0. - Læg denne procentdel til den oprindelige værdi for at få den opdaterede pris —
*price = *price + (percentage part). - Funktionen returnerer ikke noget — den ændrer værdien direkte via pointeren.
Example
| Initial Price | Increase (%) | Updated Price |
|---|---|---|
| 100.0 | 10.0 | 110.0 |
| 250.0 | 5.0 | 262.5 |
| 80.0 | 25.0 | 100.0 |
Løsning
Tak for dine kommentarer!
single