/**
指针运算:
加法:每一次加1 就是所指向的首地址加一个sizeof(类型)
int a[10];
int *p = a;
*(p+i) = a[0+i];
减法同上 但是同样要注意范围的情况
+= -= ++ --
值得注意的是
也有两个指针做减法 但是两个指针相减的意思是地址的差值/sizeof(类型)
*p++的含义是:取出p所指向的那个数据来,完事之后顺便把p指向下一个位置去
*的优先级很高 但是没++高
*p++常用于数组的的连续空间操作
**/
#include <stdio.h>
int main()
{
int a[5] = {1,2,3,4,5};
int *p ,*p4;
p = a;
p4 = &a[4];
printf("p0=%p *p0=%d\n",p,*p);//p0=0060FEE8 *p0=1
printf("p1=%p *p1=%d\n",p+1,*(p+1));//p1=0060FEEC *p1=2
printf("p4=%p *p4=%d\n",p4,*p4);//p4=0060FEF4 *p4=5
printf("p4-p的值=%d\n",p4-p);//p4-p的值=4 p4-p=16/4 = 4 int是4字节
for(p;*p!=5;p++)
printf("%d\t",*p);
return 0;
}
指针运算 c语言
最新推荐文章于 2023-12-25 17:53:22 发布