c语言指针
#include<stdio.h>void main()
{
int *p,i,a;p=a;
for(i=0;i<10;i++)
*p++=i;
p=a; //不懂
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
}
为什么要写第二个p=a? 因为你前面的for的赋值操作将是通过移动指针来完成的,结束之后p指针并不是指向数组a的首地址
你后面要打印数组的值,将p=a是让p重新指向数组的首地址在通过移动指针来打印 for(i=0;i<10;i++)
*p++=i;
这段代码完了之后P已经跑到 a数组的最后面了
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
这段代码 通过p指针从头把a数组打印一遍
所以需要p重新定位到a数组的第一个元素的地址,就是a字面量里面存放的值咯
页:
[1]