指针加减操作的单位

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

例如:

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

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

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

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

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

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

 

阅读更多
个人分类: C语言
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭