Hallo!
Die Grundlagen von C sitzen. So dachte ich zumindest....
Ich versuche gerade, eine Funktion aufzustellen, der ich pointer
übergebe. Die Funktion soll nur die Daten, die sie erhält
inkrementieren.
1 | void foo(char*data)
|
2 | {
|
3 | *data +=1; // geht
|
4 | *data ++; // geht nicht.
|
5 | }
|
6 |
|
7 | im main:
|
8 | char value = 0;
|
9 | printf("vorher: %d\r\n",value);
|
10 | foo(&value);
|
11 | printf("nachher: %d\r\n",value);
|
Warum gibt es einen Unterschied zwischen ++ und +=1 ?
1) Besteht dieser Unterschied nur in Bezug auf Pointer?
2) Wenn ja, wird diesser bei ++ dann um seine Bitbreite(hier char)
geshiftet?
3) Gilt +=1 dann im Gegensatz zu ++ als Zuweisung bezugnehmend auf d.
Inhalt?
4) ++*data habe ich nicht versucht, evtl. lohnenswert?
Danke für Hilfe!