&+数组名+整形,表示数组首地址+数组的大小偏移量
例如:
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
*(ptr -1 ) 则等于a[4]
原因是指针大加减操作单位根据指针的类型的来定的
在这里,[&+数组名]指针的类型是数组指针,加减操作的一个单位一个该数组的大小(sizeof(数组长度*数组元素类型))
理所当然,例如int* p,p的加减操作的单位就是sizeof(int)
&+数组名+整形,表示数组首地址+数组的大小偏移量
例如:
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
*(ptr -1 ) 则等于a[4]
原因是指针大加减操作单位根据指针的类型的来定的
在这里,[&+数组名]指针的类型是数组指针,加减操作的一个单位一个该数组的大小(sizeof(数组长度*数组元素类型))
理所当然,例如int* p,p的加减操作的单位就是sizeof(int)