Re: Pointers to int

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux