Who can teach me?

Explain the steps of determining the value of


  • [code]
    : int x = 6, *p;

    Address p is pointed to x
    : p = &x;

    First, find out what value is on the right side of
    the expression:

    ++x - first, increment x and THEN USE it in expression
    x++ - first, USE x in expression and THEN increment it

    1. Incremented x will mean 7
    2. 7 must be added to a location pointed by p
    3. But, location p points to x, which is now 7
    4. 7+7 = 14 (x will be now 14)
    : *p += ++x;
  • so, the answer is 14?

    what is the meaning of *p?
    (int *p) = p is a pointer to an integer. Rite?

    Then, now the answer is 7, your explained is well, i can understand.

    But, how become 7+7=14?

    : *p += ++x; means what?

    Sorry! I'm a stupid...
  • this is simple:
    *p is the value of pointer p
    ++x means x=x+1
    *p+=++x equivalent to *p=*p+++x or *p=*p+x+1

    ???????? ?????? ??????| employment / freelance jobs
  • Undefined behavior.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!