指標就是地址
我們都知道計算機的記憶體。計算機中所有程式的執行都是在記憶體中進行的。所以為了有效的使用記憶體,就把記憶體劃分成一個個小的記憶體單元,為了更好的存取記憶體單元,就給記憶體單元進行了編號,這裡 「編號」 就稱為 地址
1、&a: 取地址符(單目運運算元):在此時,&的含義是去變數a的地址
scanf("%d",&a)
2、 int *p=&a;這是定義一個指標變數 這時候int *p定義了一個指向int型別指標p,
int main()
{
int a = 10;
int*p = &a;
printf("%d\n", a);
printf("%p\n", &a);
printf("%p\n", p);
system("pause");
return 0;
}
執行結果為:
10
00D8FDCC
00D8FDCC
我們可看到&a表示的是a 的地址,指標變數p表示也是a的地址
3、*p :解除參照 :它所指的值是指標指向變數的值,並不是地址。
int main()
{
int a = 10;
int*p = &a;
printf("%d\n", a);
printf("%p\n", &a);
printf("%p\n", p);
printf("%d\n", *p);
system("pause");
return 0;
}
執行結果為:
10//------->對應的a的值
00EFFA74//-------->對應的是a的地址
00EFFA74//--------->對應的是a的地址
10//-------->對應的a變數的內容
int main()
{
int a = 10;
int*p = &a;
int* q = p;
printf("p = %p\n", p);
printf("*p = %d\n", *p);
printf("q = %p\n", q);
printf("*q = %d\n", *q);
system("pause");
return 0;
}
執行結果
p = 008FFCA0
*p = 10
q = 008FFCA0
*q = 10
請按任意鍵繼續. . .
需要注意的是 int*p = a 中 p所指的是變數a的地址;*p 所指的是變數a的內容。