Moin. Bin Anfänger wollte gerne fragen ob jemand das mal kurz durchschauen könnte und bei Fehler kurz ne Verbesserung.
Danke!
C
Code:
/*****************************************************************************/
#include <stdio.h>
int main (void) {
int o,l,z;
double u;
int i = 3; // i kriegt Wert 3.
int j = 5; // j kriegt Wert 5.
int k = 6; // k kriegt Wert 6.
int *p = &i; // p wird als int Pionter deklariert und hat dei Adresse von i.
int *q = &j; // q wird als int Pionter deklariert und hatdie Adresse von j.
int *r; // r wird als int Pionter deklariert hat aber keine Werte oder Adressen.
int *t = p; // t wird als int Pionter deklariert und hat den Wert auf den p Zeigt.
int **pp = &t; // pp wird als int doppel Pionter (auch *pp[]) deklariert
// und hat als ersten Punkt den Wert auf den t zeigt
p == i; // nicht erlaubte Operaton
u = *p / *q; // nicht erlaubte Operaton
o = *p / *q + 3; // Wäre eine variable vor dem Ausdruck wäre das ergebnis int 3
l = **&p; // Wäre eine Variable vor dem Ausdruck ware das ergebnis 3
*(r = &k); // r kriegt die Adresse von k zugeweisen und hat
// danach den Wert von k da der Derefferenrierungs Operator noch vor der Klammer ist.
*(r = &k) = *p * *q; // rechts . Den wert auf den p zeigt mal den wert auf den q zeigt 3 * 5
// Wird gespeichert bei k
z = *p * **pp; // 3 * 3. Wert auf den p zeigt * den Wert das erste Element von pp und den Wert auf den er zeigt
}
/*****************************************************************************/