以下是書上的習題,要求變數x,以及指向數x的指標*p,以及指向指標*p的另一指標**mp的位址。
書上的解答是:
引用:
#include <stdio.h>
int main(void)
{
int *p,**mp,x;
p=&x;
mp=&p;
**mp=10;
printf("%p,%p,%p",&x,p,mp);
return 0;
}
|
結果程式跑出來後,其實&x和p的值是一樣的。
但我的疑問是,既然是三者的「位址」,不是應該寫成printf("%p,%p,%p",&x,
&p,
&mp);嗎?
thanks
剛操作時發現, printf("%p %p", p,&p) 這二者的值是一樣的? 所以對於指標變數,有沒有加&,印出來的%p都一樣,所以未必要加&嗎?