Pointerfrage

Gast #2517099
Lesenswert?

Hallo,
ich habe eine allgemeine Frage:
1
void test(unsigned int *var)
2
{
3
 temp = *var;
4
}

und
1
void test(unsigned int var)
2
{
3
 temp = var;
4
}

Wann ist es sinnvoll Variante1 und wann Variante2 zu nehmen? Beim LCD 
macht man dass ja mit Pointer (Variante1). Aber wann genau bringt 
Variante2 Vorteile gegenüber Variante1?



Grüße,
Ingo
#2517153
Lesenswert?

Pointer sind sinnvoll, wenn du:
- Mehrere Werte zurückgeben willst (Call by Reference)
- Mit großen Datentypen hantierst (wo eine Kopie zu erstellen lang 
dauert / viel unnötigen Speicher verbraucht)
- Arrays
- Du in einer Funktion rückwirkende Änderungen am ursprünglichen Datum 
vornehmen willst
- Du nur einen Pointer hast (dynamisch allokierter Speicher etc.), was 
aber mit Arrays gleichkommt...

Pointer sind nicht sinnvoll wenn:
- Du fragen musst, wann Pointerübergabe und wann Wertübergabe sinnvoll 
ist (dann wirst dir auch mit dem Dereferenzieren und dem Grundgedanken 
dahinter schwer tun)
- unsigned char, unsigned int
- temporäre Veränderungen am Parameter durchgeführt werden, der aber 
nach Abarbeitung der Funktion den gleichen Wert wie vor Aufruf haben 
soll

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren