了解C语言之指针(三)

时间:2023-02-04 19:13:02

七、多级指针

1、二级指针

了解C语言之指针(三)

二级指针变量的定义形式为:类型 **指针变量名;

普通变量、一级指针变量、二级指针变量也可以在一道定义。例如: int **q,*p,x;

指向指针的指针

用于存放某个指针变量地址的指针变量被称为指向指针的指针,其定义形式如下:

类型名 **变量名;

int a, *p1, **p2 ;

a=10;

p1=&a;

p2=&p1;

printf("%d,%d,%d",a,*p1,**p2);

了解C语言之指针(三)

注意!!!:

1.一级指针变量只能取得普通变量的地址,二级指针变量只能取得一级指针变量的地址,当然都不能用整数给它们赋值。

2. printf(“x=%d”,**q);就相当于语句: printf(“x=%d”,x);

3. 可理解为**q==*(*q)==*p==x。

4. 综上所述,引用普通变量 x 共有三种方法:

x /* 直接引用 */

*p /* 间接引用 */

**q /* 间接引用 */

当然,后两种方法的前提是:指针变量都取得了相应的地址值。


2、多级指针的概念 可以加下群466572167(群内有各种项目学习资料)

按照上述二级指针的思路,显然可以推广到三级指针、四级指针……。使用多级指针变量的要点是:

①多级指针变量均用基类型定义,定义几级指针变量要将变量名前放几个“*”号;

②各指针变量均应取得低一级指针变量的地址后才能引用;

③引用几级指针变量访问最终的普通变量时,变量名前需用几个指向运算符*号。

例:

运行下面的程序

/* EX7-3.C */

main()

{

int *p1,**p2,***p3,****p4,x=10;

p1=&x; p2=&p1; p3=&p2; p4=&p3;

printf("x=%d",****p4);

}

程序运行的结果如图所示:

了解C语言之指针(三)