Since you ask, it's not really a proper mechanism: You should use the increment operators for the destination pointer in the for statement instead of using the post increment operator with the dereference. Also, that whole statement doesn't quite make sense. You probably want to traverse 0 - (arraysize - 1) but you're actually checking for less than (arraysize - 1) which mean you never get there. Also, is the array a character array? If so, then the increments work, otherwise the arraysize might not represent the actual memory block size (say for short it is 2 bytes each item). Corey On 10/28/05, ework0 <ework0@xxxxxxxxx> wrote: > 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 >