多层指针,地址与传参
#include <stdio.h>
#include <malloc.h>
typedef struct Sa{
int S_a;
} S , *Sp;
void Change(Sp testA, Sp* testB);
int main()
{
printf("Hello, World!\n");
S ss;
ss.S_a = 100;
Sp ap = malloc(sizeof(S));
ap -> S_a = 110;
S * bp = &ss;
Sp* bpp = &bp;
S ** bpp2 = &bp;
bp->S_a = 101;
printf("one P to &ss: %p\n", *bp);
printf("&bp : %p\n", &bp);
printf("bp: %p\n",bp);
printf("S ss: %p\n", ss);
printf("Sp* bpp: %p\n", bpp);
printf("S ** bpp2: %p\n", bpp2);
Change(ap, &bp);
printf("%d\n",ap->S_a);
printf("%d\n",bp->S_a);
return 0;
}
void Change(Sp testA, Sp* testB)
{
printf("\n*testB : %p\n", *testB);
}
输出结果为:
Hello, World!
one P to &ss: 0000000000000065
&bp : 000000000061FDC8
bp: 000000000061FDD4
S ss: 0000000000000065
Sp* bpp: 000000000061FDC8
S ** bpp2: 000000000061FDC8
*testB : 000000000061FDD4
110
101
转载请注明原文地址:https://blackberry.8miu.com/read-5027.html