Kurze Übersicht Über Zeiger
Dereferenzierungsoperator
Ein Zeiger ist eine Variable, die die Adresse eines anderen Objekts enthält.
Der Dereferenzierungsoperator "*" gibt den Wert zurück, der an der Adresse gespeichert ist.
Deklaration und Initialisierung eines Zeigers sieht folgendermaßen aus:
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; }
Referenzierungsoperator &
Der Operator & gibt die Adresse eines Objekts zurück:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
Eine Variable vom Zeigertyp wird verwendet, um die Adresse zu speichern, die vom &-Operator zurückgegeben wird.
int variable;
int* pVariable;
pVariable = &variable;
Um den Inhalt an der angegebenen Adresse auszulesen, muss der *-Operator auf eine Variable vom Typ Zeiger angewendet werden.
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
Sie haben ein Produkt mit einem bestimmten Preis und müssen dessen Wert um einen angegebenen Prozentsatz erhöhen.
Ihre Aufgabe ist es, eine Funktion zu implementieren, die den Preis des Produkts mithilfe eines Zeigers aktualisiert.
In der Funktion updatePrice:
- Verwenden Sie den Dereferenzierungsoperator (
*), um auf den aktuellen im Speicher gespeicherten Wert zuzugreifen — zum Beispiel bezieht sich*priceauf100.0. - Berechnen Sie den Prozentsatz des aktuellen Preises —
*price * percentIncrease / 100.0, was bei 10 % von 100.010.0ergibt. - Addieren Sie diesen Prozentsatz zum ursprünglichen Wert, um den aktualisierten Preis zu erhalten —
*price = *price + (percentage part). - Die Funktion gibt nichts zurück — sie modifiziert den Wert direkt über den Zeiger.
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ösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain the difference between the * and & operators in more detail?
Can you give an example of how to use pointers in a function?
What are some common mistakes when working with pointers?
Großartig!
Completion Rate verbessert auf 4.35
Kurze Übersicht Über Zeiger
Swipe um das Menü anzuzeigen
Dereferenzierungsoperator
Ein Zeiger ist eine Variable, die die Adresse eines anderen Objekts enthält.
Der Dereferenzierungsoperator "*" gibt den Wert zurück, der an der Adresse gespeichert ist.
Deklaration und Initialisierung eines Zeigers sieht folgendermaßen aus:
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; }
Referenzierungsoperator &
Der Operator & gibt die Adresse eines Objekts zurück:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
Eine Variable vom Zeigertyp wird verwendet, um die Adresse zu speichern, die vom &-Operator zurückgegeben wird.
int variable;
int* pVariable;
pVariable = &variable;
Um den Inhalt an der angegebenen Adresse auszulesen, muss der *-Operator auf eine Variable vom Typ Zeiger angewendet werden.
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
Sie haben ein Produkt mit einem bestimmten Preis und müssen dessen Wert um einen angegebenen Prozentsatz erhöhen.
Ihre Aufgabe ist es, eine Funktion zu implementieren, die den Preis des Produkts mithilfe eines Zeigers aktualisiert.
In der Funktion updatePrice:
- Verwenden Sie den Dereferenzierungsoperator (
*), um auf den aktuellen im Speicher gespeicherten Wert zuzugreifen — zum Beispiel bezieht sich*priceauf100.0. - Berechnen Sie den Prozentsatz des aktuellen Preises —
*price * percentIncrease / 100.0, was bei 10 % von 100.010.0ergibt. - Addieren Sie diesen Prozentsatz zum ursprünglichen Wert, um den aktualisierten Preis zu erhalten —
*price = *price + (percentage part). - Die Funktion gibt nichts zurück — sie modifiziert den Wert direkt über den Zeiger.
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ösung
Danke für Ihr Feedback!
single