Warum geht =+1 aber nicht ++ ??
-
void signs(int a[], int wert, int *positiv, int *null, int *negativ) { int i; for(i=0; i<wert; i++) { if(a[i] <0) *negativ++; if(a[i] >0) *positiv++; if(a[i]==0) *null++; } }
Das ist mein Programmcode. Wenn ich ++ schreibe um den Wert hochzuzählen, funktioniert es nicht, jedoch wenn ich stattdesssen +=1 hinschreibe, geht es. Ich dachte immer beide schreibweisen bedeuten das gleiche, oder liegt es daran, dass ich den Inhalt einer Adresse hochzähle?
-
*null++
Inkrementiert den Pointer, nicht den Wert.
Probiere es mal mit (*null)++;
Den Namen null würde ich nicht verwenden, könnte Mißverständnisse mit NULL geben.
-
Ahh danke schön..
...
-
oder
++*null;
-
Das ist alles etwas tückisch
++var inkrementiert, bevor var angesprochen wird, var++ danach.
am Anfang besser mal Klammern verwenden, es ist dann klarer zu lesen. Der
Compiler weiß dann was er zu tun hat und optimiert das eh ...