关于C语言指针的问题

C语言指针问题 下面代码为什么第二个数字是5呢?

int a[5] = {1,2,3,4,5};
int *p = (int *)(&a+1);
NSLog(@"%d,%d", *(a+1), *(p-1));
阅读 7.7k
评论
    3 个回答
    • 694

    一楼答主写的很好,做点扩展

    指针的值是一个数组的地址
    int ( * pa )[5];
    pa++;pa往后移动20个字节(5*4)

    对比,数组中的元素是指针(int*)
    int *pa[5];
    pa++;pa往后移动4个字节