问:什么情况下可以对指针进行加减运算
答 :当指针指向数组元素的时候,比如指针变量p指向数组元素a[0],我们希望p+1,指向下一个元素a[1].
指针指向数组元素时可以对指针进行以下运算:
p+1;
p-1;
p++,++p;
p--,--p;
分析“指针”+1
能想到的就有三种情况
扫描二维码关注公众号,回复:
996093 查看本文章
1.加一个字节
(
指针+1并不是加一个字节)
# include <stdio.h>
int main()
int main()
{
int a[10]={0,1,2,3,4};
int*p=a;
p=(int*)((char*)p+1);/*强制转换成char类型,给p加一个字节 */
int q=*p;
printf("%d %d %d\n",a,p,q,);
}
int a[10]={0,1,2,3,4};
int*p=a;
p=(int*)((char*)p+1);/*强制转换成char类型,给p加一个字节 */
int q=*p;
printf("%d %d %d\n",a,p,q,);
}
2,加一个单元格
(指针+1就是加一个单元格)
# include <stdio.h>
int main()
int main()
{
int a[10]={0,1,2,3,4};
int*p=a;
p=p+1;/*加了一个单元格*/
int q=*p;
printf("%d %d%d\n",a,p,q);
}
int a[10]={0,1,2,3,4};
int*p=a;
p=p+1;/*加了一个单元格*/
int q=*p;
printf("%d %d%d\n",a,p,q);
}