IF-Verzweigung mit dem Zeiger
-
Hallo,
man definiert zwei Variablen und möchte 'a' auf 'b' setzen falls sie verschieden sind.
char *a, b; if (*a != b) a = &b;
Irgendwie ist die IF-Bedingung schief gegangen. Kann mir jemand helfen?
Ciao
Hauser
-
*a ist ein Pointer
b eine 8 Bit Zahla hat keinen Wert, b auch nicht - was solld das dann vergleichen ?
-
ja ein komplettes beispiel waere erstmal sinnvoller
-
Scheppertreiber schrieb:
*a ist ein Pointer
nö, a ist der pointer. das sternchen gehört nicht mehr zum namen.
Scheppertreiber schrieb:
b eine 8 Bit Zahl
nö, b ist ein char. chars können auch breiter sein als 8 bits.
Scheppertreiber schrieb:
a hat keinen Wert, b auch nicht
nö, variablen haben immer einen wert. nur sind die werte in diesem fall unvorhersehbar.
Scheppertreiber schrieb:
was soll das dann vergleichen
steht doch da: ob der char, auf den der pointer zeigt, nicht den gleichen wert hat wie b.
-
~fricky schrieb:
Scheppertreiber schrieb:
*a ist ein Pointer
LOL!
-
Hauser schrieb:
Hallo,
man definiert zwei Variablen und möchte 'a' auf 'b' setzen falls sie verschieden sind.
char *a, b; if (*a != b) a = &b;
Irgendwie ist die IF-Bedingung schief gegangen. Kann mir jemand helfen?
Ciao
Hauserdas ist viel einfacher als du denkst: vergleich pointer-pointer oder zuweisung pointer-pointer geht genauso wie variable-wert
char *a, *b; if (a != b) a = b;
-
diddler schrieb:
Hauser schrieb:
Hallo,
man definiert zwei Variablen und möchte 'a' auf 'b' setzen falls sie verschieden sind.
char *a, b; if (*a != b) a = &b;
Irgendwie ist die IF-Bedingung schief gegangen. Kann mir jemand helfen?
Ciao
Hauserdas ist viel einfacher als du denkst: vergleich pointer-pointer oder zuweisung pointer-pointer geht genauso wie variable-wert
char *a, *b; if (a != b) a = b;
Hier werden nur die Adressen verglichen. Zum Vergleich des Inhalts muss man strcmp nutzen.
-
blalblabla schrieb:
Hier werden nur die Adressen verglichen. Zum Vergleich des Inhalts muss man strcmp nutzen.
wer sagt denn, dass die char* auf 0-terminierte strings zeigen?