C 學習筆記 this指標

2021-09-24 03:24:42 字數 1230 閱讀 3032

先從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 空指標和野指標 ...