C 中指標賦值原則

2021-08-02 15:59:53 字數 1448 閱讀 2961

指標(pointer)是

「指向(

point to)」

另外一種型別的復合型別,它實現了對其它物件的間接訪問。定義指標型別的方法將宣告符寫成

*d的形式,其中

d是變數名,如以下**宣告了乙個整形指標:

int *ip1;

對指標進行賦值只能使用以下四種型別的值:(1)空指標(

2)型別匹配的物件的位址(

3)同型別的另乙個有效指標(

4)另一物件之後的下一位址。

空指標(null pointer)不指向任何物件。

有以下幾種方法可以將指標賦值為空指標。

int *p1 = nullptr;

int *p2 = 0;

int *p3 = null;

其中,nullptr是

c++11

新標準剛剛引入的一種方法。

把整形變數直接賦給指標是錯誤的操作,如

int zero = 0;

int *p1 = zero;

如果將zero宣告為常量值,則可以用其對指標進行賦值:

const int zero = 0;

int *p1 = zero;

如果只是宣告了乙個int指標,而未對其進行定義,如

int *p4;

則此時該指標的值是0xcccccccc,如圖

2-1所示。

圖2-1 空指標與未定義指標

可以將指標賦值為其型別匹配的物件的位址。

int one = 1;

int *p5 = &one;

從圖2-2中可以看到,此時

p7的值是

0x005cfb98

,而0x005cfb98

的記憶體中儲存的值是

4個位元組的

int型別的資料,其值為1。

圖2-2 型別匹配的物件的位址

可以將指標賦值為同一型別的另乙個有效指標。

int *p6 = p5;

此時,可以從圖2-3中看到,

p6的值與

p5的值相同,都是

0x005cfb98。

圖2-3 同型別的另乙個有效指標

int *p7 = p5+1;

從圖2-4中可以看到,

p7的值是

0x005cfb9c

,也就是

p5的值

0x005cfb98加上4

個位元組。

圖2-4 另一物件之後的下一位址

講解C語言程式設計中指標賦值的入門例項

從const int i 說起 你知道我們宣告乙個變數時象這樣int i 這個i是可能在它處重新變賦值的。如下 int i 0 i 20 這裡重新賦值了 不過有一天我的程式可能需要這樣乙個變數 暫且稱它變數 在宣告時就賦乙個初始值。之後我的程式在其它任何處都不會再去重新對它賦值。那我又應該怎麼辦呢?...

C 賦值相容原則

c 賦值相容原則 賦值相容規則是指在需要基類物件的任何地方都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員,而且所有成員的訪問控制屬性也和基類完全相同。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。賦值相容...

c 賦值相容原則

define crt secure no warnings include using namespace std class parent parent int a void func1 void func3 int c int d static int e private int a 子類也會繼...