前言:
如今看官们对“c语言移动文件指针”都比较着重,各位老铁们都想要分析一些“c语言移动文件指针”的相关知识。那么小编同时在网上汇集了一些有关“c语言移动文件指针””的相关内容,希望兄弟们能喜欢,同学们快快来学习一下吧!①源程序
#include <studio.h>
main( )
{
int a[6]={1,2,3,4,5,6};
int *p,**k;
p=a;k=&p;
/*p为指向数组a[6]数组名a的指针,即p指向数组首地址,即p指向数组元素a[0]=1的地址。
k为指向指针p的地址的指针,即指向指针的指针*/
printf("%d",*(p++));
printf("%d\n",**k);
}
~
②计算过程
首先输出*(p++),
加加在后,先运算,再加1,
等同于首先输出*p,
已知p=a,
得p=a=&a[0],
*p=a[0]=1,
之后
p++,p=p+1,影响**k。
~
再输出**k,
已知k=&p,
得k=&p=&a=&&a[0],
注意此时p=p+1
即k随p的移动而移动,
k=&(p+1)=&(a+1)=&&a[1],
**k=**&&a[1]=a[1]=2
~
③复习
本题中p++表示p=p+1,
表示指针移动,因为指针p和后一个指针p+1建立了联系,是动态的。
~
若只是p+1,
表示相邻指针,因为前后指针没有建立联系,不存在移动,是静态的。
~
若是++p表示p=p+1,
表示指针移动,不过这种移动是表达式++p和变量p同时加1,取不到第一个元素的a[0]值,所以语句中一般很少用。
p++是表达式先不变,变量加1。即p++=p=a[0],p=p+1=a[1],取到了第一个元素a[0]的值,很常用。
~
若是++*p,
表示变量加1,即先取指针p的指向元素1 ,再1+1=2,指针不动,指针所指变量加减。
标签: #c语言移动文件指针