double arr [ 4 ] = { 1, 2, 3, 4 };
double* p = arr + 2;
printf("%.2lf \n", *p);
printf("%.2lf \n", p[1]);
为什么第二个printf输出的是4.00。p[1]这个数组是怎么来的?
arr[0]=1,arr[1]=2,arr[2]=3,arr[3]=4。
p=arr+2=&arr[2],
所以*p=p[0]=arr[2]=3,
p[1]=arr[3]=4
看了下楼下的回答,我觉得有必要指出一下
double* p=arr+2;的意思是数组的首地址加2而不是里面的元素加2,所以p不等于{3,4,5,6};