Shouldn't it print 1 ?
arr[idx] is syntax sugar for *(arr + idx) so -1[p] == p[-1], and since p starts at the second element you should have the first then.
But does it compiles everywhere ?
Years ago, I had a similar situation with compiler warning about arithmetic operation on pointers, like "trying to access the *p value of the -1 array", but I don't remember well so I'll say 1, .x value of the 0th element 🙂
Then -7 ? Since p already points to arr, then it's -((p+1)->x), so the 3rd element of the array 🙂
At least I hope operator precedence doesn't imply (-(p+1))->x, because it lools like an undefined behaviour then 😅
Oh and btw it's super nice of you to take the time to answer everyone !
@Xipiryon third element of the array, bingo! but that's not 7 or -7 :P
mastodon.eus euskararen eta euskal kulturaren komunitatearentzat sortutako Mastodon sare sozialeko euskarazko instantzia bat da.