C 淺說指標比較

2021-06-19 19:08:57 字數 682 閱讀 8387

對於一些普通的值比較,如下:

int v1 = 4;

int v2 = 4;

int v3 = 5;

則v1 == v2 為true

&v1 == &v2 為false

v1 == v3 為false

上面v1、v2、v3都有各自的儲存位址和值,而

v1 == v2 比較的是它們的值,這裡它們的值都等於4,所以條件為真;

同樣v1 == v3 比較的也是它們的值,所以條件為假;

&v1 == &v2 比較的是它們的儲存位址,由於它們的儲存位址不一致,所以條件為假;

下面來看看指標的比較,如下:

int * p1 = &v1;

int * p2 = &v1;

int * p3 = &v2;

則p1 == p2 為true

p1 == p3 為false

*p1 == *p3 為true

同樣的,p1、p2、p3都有各自的儲存位址和值,但是指標的值儲存的是位址(注意這點)

p1 == p2 比較的是它們的值,這裡它們的值都是&v1,所以條件為真;

同樣p1 == p3 比較的也是它們的值,p1的值為&v1,p3的值為&v2,所以條件為假;

*p1 == *p3 比較的是它們所指向的變數,即該比較可看成是 v1 == v2 ,從上述可知條件為真;

C 淺說模板定義

定義函式模板 如果想要編寫函式比較兩個值的大小,我們可能這樣寫 int compare const string v1,const string v2 int compare const double v1,const double v2 通過過載不同的型別來實現一件事,這樣容易出錯,且事先必須知道...

c 程式 淺說虛函式

由於兒子類是從父親類派生出去的,因此兒子類的物件也會繼承父親類的屬性和功能 資料和函式 比如說這個兒子叫小明,那麼他就是兒子類的乙個物件。小明繼承了父親類的一些屬性 矮個 和功能 擅長跳躍 由於他們的關係非常親密,因此我們可以用指標將他們聯絡起來。father pfather new son 由於在...

C 指標比較的含義

這個問題我是在 c 必知必會 條款28裡面看到的。c 指標比較的不是位址,而是物件同一性問題。即指標位址可以不同,而比較的結果卻相同,因為它們指向的是同乙個物件。這個問題用多重繼承比較直觀 include 2 3 using namespace std 4 5 class a 8 9 class b...