“指针”+1

      问:什么情况下可以对指针进行加减运算
      答 :当指针指向数组元素的时候,比如指针变量p指向数组元素a[0],我们希望p+1,指向下一个元素a[1].


指针指向数组元素时可以对指针进行以下运算:
  p+1;
 p-1;
p++,++p;
p--,--p;



分析“指针”+1
能想到的就有三种情况

1.加一个字节 ( 指针+1并不是加一个字节)
# include <stdio.h>
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,);
 }
2,加一个单元格 (指针+1就是加一个单元格)

# include <stdio.h>
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);
 }

猜你喜欢

转载自blog.csdn.net/foooooods/article/details/79597608