Different Pointer Arithmetic Results when Taking Address of Array
问题 Program: #include<stdio.h> int main(void) { int x[4]; printf("%p\n", x); printf("%p\n", x + 1); printf("%p\n", &x); printf("%p\n", &x + 1); } Output: $ ./a.out 0xbff93510 0xbff93514 0xbff93510 0xbff93520 $ I expect that the following is the output of the above program. For example: x // 0x100 x+1 // 0x104 Because x is an integer array &x // 0x100 Address of array &x+1 // 0x104 But the output of the last statement is different from whast I expected. &x is also the address of the array. So