龙空技术网

C语言-指向指针的指针

肌肉诗男 1142

前言:

如今看官们对“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语言移动文件指针