This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Pointers to int


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]