{
printf("%d\n",p[5]);
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);
}
你理解的很到位呀
函数传入的是4的地址
那么再往后偏移5个地址,不就是9的地址了吗,那打印的不是9吗
fun函数传递的参数相当于是以数组a中第四个元素为起始地址的指针,也就是{4, 5, 6, 7, 8, 9, 10},printf函数打印的是指针p的第6个元素的值,结果正是9.
你不是只传一个4过去
&a[3]=4;
然后p[5];
往后挪五位为9