Was ist der Unterschied?
-
Hi Leute,
//-------------------------------------------------------------- ++(*p) //pre-increment thing pointed to (*p)++ //post-increment thing pointed to //-------------------------------------------------------------- *(p++) //access via pointer, post-increment pointer *(++p) //access via pointer which has already been incremented //--------------------------------------------------------------
Was ist der Unterschied zwischen jeweils den 1. beiden und den 2. beiden?
MfG ::john::
-
Huhu,
wenn ich mir die Kommentare so durchlese:
Wird bei den ersten beiden der Wert inkrementiert.
Und bei den zweiten beiden der Pointer inkrementiert und dann dereferenziert.
-
Auf den ersten Block bezogen, ist es also egal ob ich
++(*p)
oder
(*p)++
benutze um den Wert zu inkrementieren?
MfG ::john::
-
Huhu,
Hier wird p sofort inkrementiert.
int i=12; int* p=&i; printf("%i",++(*p)); // 13 printf("%i",*p); // 13
Hier wird p erst bei der nächsten Anweisung inkrementiert:
int i=12; int* p=&i; printf("%i",(*p)++); // 12 printf("%i",*p); // 13
-
Jetzt hab ich es gecheckt!
Danke für die Erklärung
MfG ::john::