|
今天,我們一起來(lái)分析C語(yǔ)言,雙重指針。
1.雙重指針含義
雙重指針,就是指針指向的地址A(假設(shè)是80H地址),里面存放一個(gè)變量sp,而該變量sp是一個(gè)指針變量。
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);
}
程序說(shuō)明:
H1、sa=niu;將數(shù)組首地址送給指針sa,即指針sa指向數(shù)組niu的首地址。
H2、ss=&sa;指針sa所在的地址送給雙指針ss,即指針ss指向指針sa所在的地址。
H3、a=**ss;將指針ss指向地址里面的數(shù)sa,作為指針,將sa指針指向地址里面的數(shù)取出。
H4、b=*(*ss+3);相當(dāng)于b=niu[3];
H5、sp=&sb;指針sb所在的地址送給雙指針sp,即指針sp指向指針sb所在的地址。
H6、c=**sp; 將指針sp指向地址里面的數(shù)sb,作為指針,將sb指針指向地址里面的數(shù)取出。
H7、d=*(*sp+2);相當(dāng)于d=*(sb+2);。
程序運(yùn)行結(jié)果案例:
51hei圖片_20220802140834.jpg (17.93 KB, 下載次數(shù): 54)
下載附件
2022-8-2 14:43 上傳
|
評(píng)分
-
查看全部評(píng)分
|