Storing Address in Pointer gives me different hex

So I created the pointer as per page 66:

int main(int argc, const char * argv[]) {
    // insert code here...
    int i = 17;
    int *addressOfI = &i;
    printf("i stores its value at %p\n", &addressOfI);
    printf("This function starts at %p\n", main);
    return 0;
}

However, when I change the first print function from &i to &addressOfI, I do not get the same storing hex address. Very similar, but not the same.

addressOfI gives me 0x7fff5fbff7a0
i gives me 0x7fff5fbff7ac
:question:

BTW, I’m using Xcode 6.3.1

That’s normal because i and addressOfI are distinct variables; that is, they have their own distinct addresses in memory, &i and &addressOfI respectively.

Therefore, the expressions &i and &addressOfI must have different values.

[Become a competent programmer: pretty-function.org]