经典的数组与指针
1.数组与指针
先看代码
#include <stdio.h>
int main()
{
int a[5] = {2,1,3,4,7};
int *ptr = (int *)(&a + 1);
printf("*(a+1):%d *(ptr+1):%d\n", *(a+1), *(ptr-1));
printf("a=%p,&a=%p \n",a,&a);
printf("a=%p %p %p %p %p\n",a,a+1,a+2,a+3,a+4);
printf("&a=%p &a+1=%p\n",&a, &a+1);
printf("&a+1=%p a+1=%p\n",&a+1, a+1);
printf("*a:%d **&a:%d\n", *a, **(&a));
/*
* a 表示一级指针;也可以表示一级指针首地址
*&a 表示二级指针;也可以表示二级指针首地址
*
* 数组 做加1运算时,是按其地址中存储的数据类型进行地址位移计算的
* 指针变量 做加1运算时,是按其地址中存储的数据类型进行地址位移计算的
*/
return 0;
}