先從c語言結構體初始化的例子來說明this指標。定義乙個結構體,並對其實例進行初始化。
#include#includeusing namespace std;
struct student
;void initstudent(name, name);
st->age = age;
strcpy(st->***, ***);
}main()
在initstudent()函式中,定義了結構體指標,在呼叫該函式時,傳入對應結構體變數的位址,完成對該變數的初始化。
先看下面的**:
#include#includeusing namespace std;
class cgoods
;void cgoods::registergoods(char name, int amount, float price)
void cgoods::counttotal()
;//void registergoods(cgoods* const this, char name, int amount, float price);
void cgoods::registergoods(char name, int amount, float price)
void cgoods::counttotal()
{ total_value = amount * price;
cout<<"total_value:"《即:
-在每個函式的引數列表中加上cgoods* const this,作為函式的第乙個引數。
-將每個物件對函式的呼叫改為: c1.getname(name)->getname(&c1, name);
this指標就是指向當前物件的指標,其值為物件的記憶體位址。物件c1呼叫函式成員,this指標的值就是c1的位址;同理,c2物件呼叫函式成員,this指標的值就是c2的位址。
使用const關鍵字修飾指標,有以下3種情形:
如果const出現在的左邊,那麼const鎖定的p,不能再對p更改,但是可以更改p的值。即可以修改p指向的空間的內容,但是不可以修改p的指向。
例如:int a = 2;
int b;
const int* p = &a;
*p = 3;//正確
p = &b;//錯誤
如果const出既現在的左邊,又出現在的右邊,那麼const既鎖定的p,又鎖定*p。這種情形常用來讀取
C 指標學習筆記
例 int變數 updates 指標變數 p updates updates表示值,updates表示位址 p updates表示位址,p updates表示指標所指向的值。所以 updates p updates,updates p updates 指標的初始化 int p updates 表明 ...
C 學習筆記(指標)
字串是以 n 作為終止符的,所以字元陣列的大小比單詞的字元數多乙個。每乙個變數都有乙個記憶體位置,每乙個記憶體位置都定義了可使用連字型大小 運算子訪問的位址,他表示了記憶體的乙個位址。什麼是指標 指標是乙個變數,其值為另乙個變數的位址,既記憶體位置的直接位址。就像其他變數或常量一樣,必須使用指標儲存...
C 學習筆記 指標
1 基本概念 作用 可以通過指標直接訪問記憶體 2 定義和使用 定義指標 他們的關係就是這樣的 執行輸出 使用指標 執行輸出會發現變數a的值也一起改變了,這是因為在記憶體中 p和a都是乙個記憶體位址 3 指標所佔記憶體空間 在32位作業系統下占用4個位元組,64位下佔8個位元組 4 空指標和野指標 ...