指针加一

来源:互联网 发布:济宁软件开发公司 编辑:程序博客网 时间:2024/04/28 21:35

例:

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

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

&a+1不是首地址加一,系统会认为加一个a数组的偏移,是偏移了一个数组的大小

ptr是&(a[5]),也就是a+5;

指针加一要根据指针类型加上一定的值,不同类型的指针加一之后增加的大小不同。a是长度为5的int 数组指针,所以要加5*sizeof(int*);

因为ptr与(&a+1)类型不一样,a是数组首地址,&a是对象(数组)首地址。ptr-1只会减sizeof(int*)

0 0
原创粉丝点击