指针加减操作的单位

来源:互联网 发布:复合矩阵 编辑:程序博客网 时间:2024/06/05 00:52

&+数组名+整形,表示数组首地址+数组的大小偏移量

例如:

int a[5]={1,2,3,4,5};

int *ptr=(int *)(&a+1);

*(ptr -1 ) 则等于a[4]

原因是指针大加减操作单位根据指针的类型的来定的

在这里,[&+数组名]指针的类型是数组指针,加减操作的一个单位一个该数组的大小(sizeof(数组长度*数组元素类型))

理所当然,例如int* p,p的加减操作的单位就是sizeof(int)