指針

#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根本沒有關係。

以後要避免這種寫法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章