今天,我們一起來分析C語言,雙重指針。
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);。
程序運行結果案例:
51hei圖片_20220802140834.jpg (17.93 KB, 下載次數: 54)
下載附件
2022-8-2 14:43 上傳
|