Hello,
Christoph Bussenius wrote:
On Fri, Oct 28, 2005 at 07:19:26AM -0600, Fabio Andres Miranda wrote:
Can anyone explain to the list how this pointers to int work:
int *p;
p = (int *)(array);
for (i = 0; i < arraysize - 1; i += 4)
*p++ = j - 8;
*p = 0x0;
P is defined as a pointer to a int. Then, it points to (the beginning ?
) a char array.
What is the result of perform the instruction: *p++; ?
As postincrement (++) has higher priority than dereference (*), p++ is
what will be evaluated first. So p will be incremented by the size of
an integer (probably 4). After that, p will point to the second integer
of the array, i. e. array[1]. Now you use * to access that very
location and store j-8 there.
Regarding this issue, I understand the priorities of operands, I dont
have clear what does the '++' operator increments: a. The memory
location (ej: If it was 0x01, now it is 0x02); b. The value contained in
the memory location p is point to?
Can anyone provide a simpler illustrative examples regarding this
operations? I think it would be great for the records of the list,
Best regards,
ework0