Während ich C lernte (ich bin sehr neu dazu), spielte ich mit Zeigern herum. Hier können Sie meinen Code sehen:c: bei der Verwendung eines Zeigers als Eingabe in einer Funktion inkrementieren die Zeigern Wert mit * Zeiger ++ funktioniert nicht
#include <stdio.h>
void change(int *i)
{
*i += 1;
}
int main()
{
int num = 3;
printf("%d\n", num);
change(&num);
printf("%d\n", num);
return 0;
}
Mein Ziel für die Num-Wert erhöhen, ohne es zu Neuzuweisung wie so zu ersetzen, war:
num = change(num);
Deshalb habe ich den Speicherort num
vorging die &
mit: also könnte es als Zeiger verwendet werden. Vor dieser Version war alles im Code identisch. Das einzige, was anders war, war, dass ich sagte *i++;
anstelle von *i += 1;
Nun meine Frage ist, warum kann ich nicht sagen *i++
?
Operatorpriorität: Postfixinkrement hat höhere Priorität als unäre Indirektion, hat höhere Priorität als Verbundzuweisung. – EOF
Deutsch zu sein ist keine Entschuldigung für schlechtes Englisch! – Olaf
@Olaf Ich bin Deutscher und habe immer noch Probleme mit dem Englischen. – Michi