int a=1,b=2;
int *p1=&a,*p2=&b;
printf("%d",*p1);
指針p1指向變量a,而a的值是1,*p的值就是1,這裏先輸出1;
void afunc(int *p1,int *p2)
{
int *p3;
p3 = p1;
p1 = p2;
p2 = p3;
}
這個afunc函數是對形參p1和p2的值進行了交換,也就是說交換的是地址值;
在調用時afunc(&a,&b),不會對變量a的地址和變量b的地址有任何影響,變量a還是原來的變量a,變量a的值還是1,
第2個printf("%d",*p1)仍然輸出1,
因此以上程序的輸出結果是11