| 1.双重指针含义 
 双重指针,就是指针指向的地址A(假设是80H地址),里面存放一个变量sp,而该变量sp是一个指针变量。
 
 
 2.程序范例
 
 #include <stdio.h>
 #define uchar unsigned char
 #define uint unsigned int
 uchar a,b,c,d;
 uchar *sa,**ss,**sp,*sb="edu118";
 uchar  niu[10]={3,8,1,13,29,4,5};
 main()
 {
 sa=niu;//H1
 ss=&sa;//H2
 a=**ss;//H3
 b=*(*ss+3);//H4
 sp=&sb;//H5
 c=**sp;//H6
 d=*(*sp+2);//H7
 printf("%d\t,%d\t",a,b);
 printf("%c\t,%c\t",c,d);
 }
 
 程序说明:
 
 H1、sa=niu;将数组首地址送给指针sa,即指针sa指向数组niu的首地址。
 H2、ss=&sa;指针sa所在的地址送给双指针ss,即指针ss指向指针sa所在的地址。
 H3、a=**ss;将指针ss指向地址里面的数sa,作为指针,将sa指针指向地址里面的数取出。
 H4、b=*(*ss+3);相当于b=niu[3];
 H5、sp=&sb;指针sb所在的地址送给双指针sp,即指针sp指向指针sb所在的地址。
 H6、c=**sp;  将指针sp指向地址里面的数sb,作为指针,将sb指针指向地址里面的数取出。
 H7、d=*(*sp+2);相当于d=*(sb+2);。
 
 |