int a[10];
a+1 跳一个整型元素,是a[1]的地址
a和a+1相差一个元素,4个字节
&a 就变成了一个一位数组指针,是int(*p)[10]类型的。
(&a)+1 和 &a 相差一个数组即10个元素40个字节。
int main()
{int a[10];printf("a=%p\n", a);printf("a+1=%p\n", a + 1);printf("&a=%p\n", &a);printf("&a+1=%p\n", &a + 1);return 0;
}
int a[4][5];
a+1跳5个整型
(&a)+1跳4行5列(80个字节)
#include
int main()
{int a[4][5];printf("a=%p\n", a);//int* p[5]printf("a+1=%p\n", a + 1);printf("&a=%p\n", &a); //int(*p)[4][5]printf("&a+1=%p\n", &a + 1);return 0;
}
int a[5];
int* p;
p=a;
#include
int main()
{int a[5] = { 0,1,2,3,4, };int* p;p = a;printf("p=%p\n", p);printf("a=%p\n", a);printf("a[2]=%d\n",a[2]);printf("*(a+2)=%d\n", *(a + 2));printf("p[2]=%d\n", p[2]);printf("*(p+2)=%d\n", *(p + 2));return 0;
}
#include
int main()
{int a[5] = { 0,1,2,3,4 };int* p;p = a;printf("a=%p\n", a);printf("&a=%p\n", &a);printf("&a+1=%p\n", &a + 1);printf("&p=%p\n", &p);printf("&p+1=%p\n", &p + 1);return 0;
}