#include<iostream>
using namespace std;
int main() {
int a = 2;
int *b = &a;
int c = (*b);
cout << "address b:" << b << endl;
cout << "address c:" << &c << endl;
return 0;
}
輸出結果:
address b:00F3F720
address c:00F3F708
b是指向a的指針,而c是一個被賦值爲b指向的值的變量。
c僅僅是通過b進行了間接的賦值,將b指向的值賦給了c,跟int c = 2並沒有區別。
所以b並不指向c,從前面得b是指向a的。
c有自己的區別於a的內存,所以c的地址跟a的地址肯定不相同。既然b指向a,所以b的值就是a的地址,所以&c肯定與b不相等。
結論:c和a,b根本沒有關係。
以後要避免這種寫法。